{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 多信号策略逻辑：\n",
    "\n",
    "1. CCI指标（30分钟信号）\n",
    "2. RSI指标（30分钟信号）\n",
    "3. MA指标（60分钟）\n",
    "4. 固定比率吊灯止损（分钟）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from __future__ import division\n",
    "\n",
    "from vnpy.trader.vtConstant import EMPTY_STRING, EMPTY_FLOAT\n",
    "from vnpy.trader.app.ctaStrategy.ctaTemplate import (CtaTemplate, \n",
    "                                                     BarGenerator,\n",
    "                                                     ArrayManager)\n",
    "import talib as ta\n",
    "\n",
    "########################################################################\n",
    "# 策略继承CtaTemplate\n",
    "class MultiSignalStrategy(CtaTemplate):\n",
    "    className = 'MultiSignalStrategy'\n",
    "    author = 'ChannelCMT'\n",
    "    \n",
    "    # 策略交易标的的列表\n",
    "    symbolList = []         # 初始化为空\n",
    "    posDict = {}  # 初始化仓位字典\n",
    "    \n",
    "    # 多空仓位\n",
    "    Longpos = EMPTY_STRING        # 多头品种仓位\n",
    "    Shortpos = EMPTY_STRING       # 空头品种仓位\n",
    "    \n",
    "\n",
    "    amWindow = 20\n",
    "    initDays = 1\n",
    "    # 策略参数\n",
    "    smaPeriod = 18\n",
    "    lmaPeriod = 23\n",
    "    cciPeriod = 12\n",
    "    rsiPeriod = 4\n",
    "    rsiEntry = 12\n",
    "    trailingPercent = 7\n",
    "    threshold = 2\n",
    "\n",
    "\n",
    "    \n",
    "    \n",
    "    # 策略变量\n",
    "    transactionPrice = EMPTY_FLOAT # 记录成交价格\n",
    "    fixedSize = 1 \n",
    "    longStop = EMPTY_FLOAT\n",
    "    shortStop = EMPTY_FLOAT\n",
    "    \n",
    "    # 参数列表，保存了参数的名称\n",
    "    paramList = ['name',\n",
    "                 'className',\n",
    "                 'author',\n",
    "                 'vtSymbol',\n",
    "                 'symbolList',\n",
    "                 'amWindow',\n",
    "                 'rsiPeriod',\n",
    "                 'cciPeriod',\n",
    "                 'rsiEntry',\n",
    "                 'smaPeriod',\n",
    "                 'lmaPeriod',\n",
    "                 'threshold',\n",
    "                 'trailingPercent']  \n",
    "    \n",
    "    # 变量列表，保存了变量的名称\n",
    "    varList = ['inited',\n",
    "               'trading',\n",
    "               'posDict',\n",
    "               'transactionPrice',\n",
    "               'fixedSize',\n",
    "               'longStop',\n",
    "               'shortStop']  \n",
    "    \n",
    "    # 同步列表，保存了需要保存到数据库的变量名称\n",
    "    syncList = ['posDict']\n",
    "\n",
    "    #----------------------------------------------------------------------\n",
    "    def __init__(self, ctaEngine, setting):\n",
    "        \n",
    "        # 首先找到策略的父类（就是类CtaTemplate），然后把DoubleMaStrategy的对象转换为类CtaTemplate的对象\n",
    "        super(MultiSignalStrategy, self).__init__(ctaEngine, setting)\n",
    "        \n",
    "        # 给多空仓位命名\n",
    "        symbol = self.symbolList[0]\n",
    "        self.Longpos = symbol.replace('.','_')+\"_LONG\"\n",
    "        self.Shortpos = symbol.replace('.','_')+\"_SHORT\"\n",
    "        \n",
    "        self.bg30 = BarGenerator(self.onBar, 30, self.on30MinBar)\n",
    "        self.bg30Dict = {\n",
    "            sym: self.bg30\n",
    "            for sym in self.symbolList\n",
    "        }\n",
    "        \n",
    "        self.am30Dict = {\n",
    "            sym: ArrayManager(size=self.amWindow*2)\n",
    "            for sym in self.symbolList\n",
    "        }\n",
    "        \n",
    "        self.bg60 = BarGenerator(self.onBar, 60, self.on60MinBar)\n",
    "        self.bg60Dict = {\n",
    "            sym: self.bg60\n",
    "            for sym in self.symbolList\n",
    "        }\n",
    "        \n",
    "        self.am60Dict = {\n",
    "            sym: ArrayManager(size=self.amWindow*2)\n",
    "            for sym in self.symbolList\n",
    "        }\n",
    "        \n",
    "        self.intraTradeHighDict = {}\n",
    "        self.intraTradeLowDict = {}\n",
    "        self.RSI = 0\n",
    "        self.CCI = 0\n",
    "        self.MA = 0\n",
    "    \n",
    "    #----------------------------------------------------------------------\n",
    "    def onInit(self):\n",
    "        \"\"\"初始化策略（必须由用户继承实现）\"\"\"\n",
    "        self.writeCtaLog(u'双EMA演示策略初始化')\n",
    "        # 初始化仓位字典\n",
    "        self.ctaEngine.initPosition(self)\n",
    "        # 初始化历史数据天数\n",
    "        initData = self.loadBar(self.initDays)\n",
    "        for bar in initData:\n",
    "            self.onBar(bar)\n",
    "        \n",
    "        self.putEvent()\n",
    "\n",
    "    #----------------------------------------------------------------------\n",
    "    def onStart(self):\n",
    "        \"\"\"启动策略（必须由用户继承实现）\"\"\"\n",
    "        self.writeCtaLog(u'双EMA演示策略启动')\n",
    "        self.putEvent()\n",
    "    \n",
    "    #----------------------------------------------------------------------\n",
    "    def onStop(self):\n",
    "        \"\"\"停止策略（必须由用户继承实现）\"\"\"\n",
    "        self.writeCtaLog(u'双EMA演示策略停止')\n",
    "        self.putEvent()\n",
    "        \n",
    "    #----------------------------------------------------------------------\n",
    "    def onTick(self, tick):\n",
    "        \"\"\"收到行情TICK推送（必须由用户继承实现）\"\"\"\n",
    "        pass\n",
    "        \n",
    "    #----------------------------------------------------------------------\n",
    "    def onBar(self, bar):\n",
    "        \"\"\"收到Bar推送（必须由用户继承实现）\"\"\"\n",
    "        symbol = bar.vtSymbol\n",
    "        bg30 = self.bg30Dict[symbol]\n",
    "        bg30.updateBar(bar)\n",
    "        \n",
    "        bg60 = self.bg60Dict[symbol]\n",
    "        bg60.updateBar(bar)\n",
    "        \n",
    "        # 洗价器\n",
    "        if self.posDict[self.Longpos] == 0 and self.posDict[self.Shortpos] == 0:\n",
    "            self.intraTradeHighDict[symbol] = 0\n",
    "            self.intraTradeLowDict[symbol] = 999999\n",
    "\n",
    "        # 持有多头仓位\n",
    "        elif self.posDict[self.Longpos] >0:\n",
    "            self.intraTradeHighDict[symbol] = max(self.intraTradeHighDict[symbol], bar.high)\n",
    "            self.intraTradeLowDict[symbol] = bar.low\n",
    "            self.longStop = self.intraTradeHighDict[symbol]*(1-self.trailingPercent/100)\n",
    "            if bar.close<=self.longStop:\n",
    "                self.cancelAll()\n",
    "                self.sell(symbol, bar.close*0.9, self.posDict[self.Longpos])\n",
    "\n",
    "#         # 持有空头仓位\n",
    "        elif self.posDict[self.Shortpos] >0:\n",
    "            self.intraTradeLowDict[symbol] = min(self.intraTradeLowDict[symbol], bar.low)\n",
    "            self.intraTradeHighDict[symbol] = bar.high\n",
    "            self.shortStop = self.intraTradeLowDict[symbol]*(1+self.trailingPercent/100)\n",
    "            if bar.close>=self.shortStop:\n",
    "                self.cancelAll()\n",
    "                self.cover(symbol, bar.close*1.1, self.posDict[self.Shortpos])\n",
    "        self.putEvent()\n",
    "\n",
    "    def on30MinBar(self, bar):\n",
    "        symbol = bar.vtSymbol\n",
    "        \n",
    "        am30 = self.am30Dict[symbol]\n",
    "        am30.updateBar(bar)\n",
    "        if not am30.inited:\n",
    "            return\n",
    "        \n",
    "        cci = ta.CCI(am30.high, am30.low, am30.close, self.cciPeriod)\n",
    "        rsi = ta.RSI(am30.close, self.rsiPeriod)\n",
    "        rsiLong = 50 + self.rsiEntry\n",
    "        rsiShort = 50 - self.rsiEntry\n",
    "        \n",
    "        if cci[-1]>10:\n",
    "            self.CCI = 1\n",
    "        elif cci[-1]<-10:\n",
    "            self.CCI = -1\n",
    "        else:\n",
    "            self.CCI = 0\n",
    "        \n",
    "        if rsi[-1]>=rsiLong:\n",
    "            self.RSI = 1\n",
    "        elif rsi[-1]<=rsiShort:\n",
    "            self.RSI = -1\n",
    "        else:\n",
    "            self.RSI = 0\n",
    "        \n",
    "        # 发出状态更新事件\n",
    "        self.putEvent()\n",
    "\n",
    "    def on60MinBar(self, bar):\n",
    "        symbol = bar.vtSymbol\n",
    "        \n",
    "        am60 = self.am60Dict[symbol]\n",
    "        am60.updateBar(bar)\n",
    "        if not am60.inited:\n",
    "            return\n",
    "        \n",
    "        SMA = ta.MA(am60.close, self.smaPeriod)\n",
    "        LMA = ta.MA(am60.close, self.lmaPeriod)\n",
    "        \n",
    "        if SMA[-1]>LMA[-1]:\n",
    "            self.MA = 1\n",
    "        elif SMA[-1]<LMA[-1]:\n",
    "            self.MA = -1\n",
    "        else:\n",
    "            self.MA = 0\n",
    "        \n",
    "        Signal = self.MA+self.CCI+self.RSI\n",
    "\n",
    "        if Signal>=2:\n",
    "            if (self.posDict[self.Longpos]==0) and (self.posDict[self.Shortpos]==0):\n",
    "                self.buy(symbol,bar.close*1.1, self.fixedSize)\n",
    "            elif self.posDict[self.Shortpos] > 0:\n",
    "                self.cancelAll()\n",
    "                self.cover(symbol,bar.close*1.1, self.posDict[self.Shortpos])\n",
    "                self.buy(symbol,bar.close*1.1, self.fixedSize)\n",
    "            \n",
    "        elif Signal<=-2:\n",
    "            if (self.posDict[self.Longpos]==0) and (self.posDict[self.Shortpos]==0):\n",
    "                self.short(symbol,bar.close*0.9, self.fixedSize)\n",
    "            elif self.posDict[self.Longpos]>0:\n",
    "                self.cancelAll()\n",
    "                self.sell(symbol,bar.close*0.9, self.fixedSize)\n",
    "                self.short(symbol,bar.close*0.9, self.fixedSize)\n",
    "        self.putEvent()\n",
    "\n",
    "    #----------------------------------------------------------------------\n",
    "    def onOrder(self, order):\n",
    "        \"\"\"收到委托变化推送（必须由用户继承实现）\"\"\"\n",
    "        # 对于无需做细粒度委托控制的策略，可以忽略onOrder\n",
    "        pass\n",
    "    \n",
    "    #----------------------------------------------------------------------\n",
    "    def onTrade(self, trade):\n",
    "        \"\"\"收到成交推送（必须由用户继承实现）\"\"\"\n",
    "        self.transactionPrice = trade.price\n",
    "#         print(self.posDict)\n",
    "        pass\n",
    "\n",
    "    \n",
    "    #----------------------------------------------------------------------\n",
    "    def onStopOrder(self, so):\n",
    "        \"\"\"停止单推送\"\"\"\n",
    "        pass"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2018-07-14 14:54:01.734286\t开始回测\n",
      "2018-07-14 14:54:01.734286\t策略初始化\n",
      "2018-07-14 14:54:01.734286\t载入历史数据。数据范围:[20171227,20180101)\n",
      "2018-07-14 14:54:02.384622\t载入完成，数据量：7173\n",
      "2018-07-14 14:54:02.430575\t策略初始化完成\n",
      "2018-07-14 14:54:02.431574\t策略启动完成\n",
      "2018-07-14 14:54:02.431574\t开始回放回测数据,回测范围:[20180101,20180701)\n",
      "2018-07-14 14:54:02.431574\t载入历史数据。数据范围:[20180101,20180311)\n",
      "2018-07-14 14:54:11.023802\t载入完成，数据量：99357\n",
      "2018-07-14 14:54:11.023802\t当前回放数据:[20180101,20180311)\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "2018-07-14 14:54:12.292506\t载入历史数据。数据范围:[20180311,20180519)\n",
      "2018-07-14 14:54:20.666960\t载入完成，数据量：99073\n",
      "2018-07-14 14:54:20.705921\t当前回放数据:[20180311,20180519)\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "2018-07-14 14:54:21.937041\t载入历史数据。数据范围:[20180519,20180701)\n",
      "2018-07-14 14:54:27.048820\t载入完成，数据量：61359\n",
      "2018-07-14 14:54:27.093774\t当前回放数据:[20180519,20180701)\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 1}\n",
      "{'tBTCUSD:bitfinex_LONG': 0, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "{'tBTCUSD:bitfinex_LONG': 1, 'tBTCUSD:bitfinex_SHORT': 0}\n",
      "2018-07-14 14:54:27.883968\t数据回放结束ss: 100%    \n"
     ]
    }
   ],
   "source": [
    "from vnpy.trader.app.ctaStrategy.ctaBacktesting import BacktestingEngine, OptimizationSetting, MINUTE_DB_NAME\n",
    "\n",
    "# 创建回测引擎对象\n",
    "engine = BacktestingEngine()\n",
    "# 设置回测使用的数据\n",
    "engine.setBacktestingMode(engine.BAR_MODE)    # 设置引擎的回测模式为K线\n",
    "engine.setDatabase(MINUTE_DB_NAME)  # 设置使用的历史数据库\n",
    "engine.setStartDate('20180101',initDays=5)               # 设置回测用的数据起始日期\n",
    "engine.setEndDate('20180630')\n",
    "# 配置回测引擎参数\n",
    "engine.setSlippage(0.2)     # 设置滑点为0.2跳\n",
    "engine.setRate(1/1000)   # 设置手续费千1\n",
    "engine.setSize(1)         # 设置合约大小 \n",
    "engine.setPriceTick(0.1)    # 设置股指最小价格变动   \n",
    "engine.setCapital(1000000)  # 设置回测本金\n",
    "# 在引擎中创建策略对象\n",
    "d = {'symbolList':['tBTCUSD:bitfinex']}                    # 策略参数配置\n",
    "engine.initStrategy(MultiSignalStrategy, d)    # 创建策略对象\n",
    "engine.runBacktesting()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TradeID: 1, Time: 2018-01-01 00:01:00, Direction: 多, Price: 13330.0, Volume: 1\n",
      "TradeID: 2, Time: 2018-01-01 19:11:00, Direction: 空, Price: 13187.0, Volume: 1\n",
      "TradeID: 3, Time: 2018-01-01 21:01:00, Direction: 空, Price: 13155.0, Volume: 1\n",
      "TradeID: 4, Time: 2018-01-02 08:30:00, Direction: 多, Price: 13757.0, Volume: 1\n",
      "TradeID: 5, Time: 2018-01-02 11:01:00, Direction: 空, Price: 13514.0, Volume: 1\n",
      "TradeID: 6, Time: 2018-01-02 17:01:00, Direction: 多, Price: 13409.0, Volume: 1\n",
      "TradeID: 7, Time: 2018-01-02 17:01:00, Direction: 多, Price: 13409.0, Volume: 1\n",
      "TradeID: 8, Time: 2018-01-04 12:01:00, Direction: 空, Price: 15029.0, Volume: 1\n",
      "TradeID: 9, Time: 2018-01-04 12:01:00, Direction: 空, Price: 15029.0, Volume: 1\n",
      "TradeID: 10, Time: 2018-01-05 04:10:00, Direction: 多, Price: 15049.0, Volume: 1\n",
      "TradeID: 11, Time: 2018-01-05 11:01:00, Direction: 多, Price: 15065.0, Volume: 1\n",
      "TradeID: 12, Time: 2018-01-07 22:01:00, Direction: 空, Price: 16417.0, Volume: 1\n",
      "TradeID: 13, Time: 2018-01-07 22:01:00, Direction: 空, Price: 16417.0, Volume: 1\n",
      "TradeID: 14, Time: 2018-01-09 00:43:00, Direction: 多, Price: 14723.0, Volume: 1\n",
      "TradeID: 15, Time: 2018-01-09 01:01:00, Direction: 空, Price: 14832.0, Volume: 1\n",
      "TradeID: 16, Time: 2018-01-10 01:01:00, Direction: 多, Price: 14904.0, Volume: 1\n",
      "TradeID: 17, Time: 2018-01-10 01:01:00, Direction: 多, Price: 14904.0, Volume: 1\n",
      "TradeID: 18, Time: 2018-01-10 05:01:00, Direction: 空, Price: 14709.0, Volume: 1\n",
      "TradeID: 19, Time: 2018-01-10 05:01:00, Direction: 空, Price: 14709.0, Volume: 1\n",
      "TradeID: 20, Time: 2018-01-10 23:47:00, Direction: 多, Price: 14281.0, Volume: 1\n",
      "TradeID: 21, Time: 2018-01-11 07:01:00, Direction: 空, Price: 14493.0, Volume: 1\n",
      "TradeID: 22, Time: 2018-01-11 13:11:00, Direction: 多, Price: 13535.0, Volume: 1\n",
      "TradeID: 23, Time: 2018-01-11 17:01:00, Direction: 多, Price: 13747.0, Volume: 1\n",
      "TradeID: 24, Time: 2018-01-11 19:01:00, Direction: 空, Price: 13204.0, Volume: 1\n",
      "TradeID: 25, Time: 2018-01-11 19:01:00, Direction: 空, Price: 13204.0, Volume: 1\n",
      "TradeID: 26, Time: 2018-01-11 23:03:00, Direction: 多, Price: 14095.0, Volume: 1\n",
      "TradeID: 27, Time: 2018-01-12 02:01:00, Direction: 空, Price: 13643.0, Volume: 1\n",
      "TradeID: 28, Time: 2018-01-12 10:01:00, Direction: 多, Price: 13386.0, Volume: 1\n",
      "TradeID: 29, Time: 2018-01-12 10:01:00, Direction: 多, Price: 13386.0, Volume: 1\n",
      "TradeID: 30, Time: 2018-01-12 17:01:00, Direction: 空, Price: 13540.0, Volume: 1\n",
      "TradeID: 31, Time: 2018-01-12 17:01:00, Direction: 空, Price: 13540.0, Volume: 1\n",
      "TradeID: 32, Time: 2018-01-13 04:01:00, Direction: 多, Price: 13726.0, Volume: 1\n",
      "TradeID: 33, Time: 2018-01-13 04:01:00, Direction: 多, Price: 13726.0, Volume: 1\n",
      "TradeID: 34, Time: 2018-01-14 14:01:00, Direction: 空, Price: 13745.0, Volume: 1\n",
      "TradeID: 35, Time: 2018-01-14 14:01:00, Direction: 空, Price: 13745.0, Volume: 1\n",
      "TradeID: 36, Time: 2018-01-15 14:33:00, Direction: 多, Price: 13792.0, Volume: 1\n",
      "TradeID: 37, Time: 2018-01-15 15:01:00, Direction: 多, Price: 13744.0, Volume: 1\n",
      "TradeID: 38, Time: 2018-01-16 08:17:00, Direction: 空, Price: 13345.0, Volume: 1\n",
      "TradeID: 39, Time: 2018-01-16 13:01:00, Direction: 空, Price: 12948.0, Volume: 1\n",
      "TradeID: 40, Time: 2018-01-16 18:12:00, Direction: 多, Price: 11670.0, Volume: 1\n",
      "TradeID: 41, Time: 2018-01-16 19:01:00, Direction: 空, Price: 11726.0, Volume: 1\n",
      "TradeID: 42, Time: 2018-01-17 03:13:00, Direction: 多, Price: 11551.0, Volume: 1\n",
      "TradeID: 43, Time: 2018-01-17 04:01:00, Direction: 空, Price: 11226.0, Volume: 1\n",
      "TradeID: 44, Time: 2018-01-17 06:40:00, Direction: 多, Price: 10640.0, Volume: 1\n",
      "TradeID: 45, Time: 2018-01-17 07:01:00, Direction: 空, Price: 10973.0, Volume: 1\n",
      "TradeID: 46, Time: 2018-01-17 08:16:00, Direction: 多, Price: 11486.2278153, Volume: 1\n",
      "TradeID: 47, Time: 2018-01-17 11:01:00, Direction: 空, Price: 10847.0, Volume: 1\n",
      "TradeID: 48, Time: 2018-01-17 12:32:00, Direction: 多, Price: 10946.0, Volume: 1\n",
      "TradeID: 49, Time: 2018-01-17 17:01:00, Direction: 空, Price: 10645.0, Volume: 1\n",
      "TradeID: 50, Time: 2018-01-17 20:31:00, Direction: 多, Price: 10317.0, Volume: 1\n",
      "TradeID: 51, Time: 2018-01-17 21:01:00, Direction: 空, Price: 10094.0, Volume: 1\n",
      "TradeID: 52, Time: 2018-01-18 00:08:00, Direction: 多, Price: 9899.9, Volume: 1\n",
      "TradeID: 53, Time: 2018-01-18 18:01:00, Direction: 多, Price: 11143.0, Volume: 1\n",
      "TradeID: 54, Time: 2018-01-19 06:01:00, Direction: 空, Price: 11348.0, Volume: 1\n",
      "TradeID: 55, Time: 2018-01-19 06:01:00, Direction: 空, Price: 11348.0, Volume: 1\n",
      "TradeID: 56, Time: 2018-01-19 13:01:00, Direction: 多, Price: 11187.0, Volume: 1\n",
      "TradeID: 57, Time: 2018-01-19 13:01:00, Direction: 多, Price: 11187.0, Volume: 1\n",
      "TradeID: 58, Time: 2018-01-19 23:01:00, Direction: 空, Price: 11411.0, Volume: 1\n",
      "TradeID: 59, Time: 2018-01-19 23:01:00, Direction: 空, Price: 11411.0, Volume: 1\n",
      "TradeID: 60, Time: 2018-01-20 05:01:00, Direction: 多, Price: 11341.84052922, Volume: 1\n",
      "TradeID: 61, Time: 2018-01-20 05:01:00, Direction: 多, Price: 11341.84052922, Volume: 1\n",
      "TradeID: 62, Time: 2018-01-21 13:40:00, Direction: 空, Price: 12098.15509709, Volume: 1\n",
      "TradeID: 63, Time: 2018-01-21 18:01:00, Direction: 空, Price: 11727.0, Volume: 1\n",
      "TradeID: 64, Time: 2018-01-22 16:03:00, Direction: 多, Price: 11798.0, Volume: 1\n",
      "TradeID: 65, Time: 2018-01-22 20:01:00, Direction: 空, Price: 11270.0, Volume: 1\n",
      "TradeID: 66, Time: 2018-01-23 07:04:00, Direction: 多, Price: 10723.0, Volume: 1\n",
      "TradeID: 67, Time: 2018-01-23 13:01:00, Direction: 空, Price: 10555.0, Volume: 1\n",
      "TradeID: 68, Time: 2018-01-23 23:01:00, Direction: 多, Price: 10451.0, Volume: 1\n",
      "TradeID: 69, Time: 2018-01-23 23:01:00, Direction: 多, Price: 10451.0, Volume: 1\n",
      "TradeID: 70, Time: 2018-01-24 06:01:00, Direction: 空, Price: 10985.0, Volume: 1\n",
      "TradeID: 71, Time: 2018-01-24 06:01:00, Direction: 空, Price: 10985.0, Volume: 1\n",
      "TradeID: 72, Time: 2018-01-24 15:01:00, Direction: 多, Price: 10938.0, Volume: 1\n",
      "TradeID: 73, Time: 2018-01-24 15:01:00, Direction: 多, Price: 10938.0, Volume: 1\n",
      "TradeID: 74, Time: 2018-01-25 00:01:00, Direction: 空, Price: 11082.0, Volume: 1\n",
      "TradeID: 75, Time: 2018-01-25 00:01:00, Direction: 空, Price: 11082.0, Volume: 1\n",
      "TradeID: 76, Time: 2018-01-25 04:01:00, Direction: 多, Price: 11213.0, Volume: 1\n",
      "TradeID: 77, Time: 2018-01-25 04:01:00, Direction: 多, Price: 11213.0, Volume: 1\n",
      "TradeID: 78, Time: 2018-01-26 00:59:00, Direction: 空, Price: 10868.0, Volume: 1\n",
      "TradeID: 79, Time: 2018-01-26 03:01:00, Direction: 多, Price: 11276.0, Volume: 1\n",
      "TradeID: 80, Time: 2018-01-26 07:01:00, Direction: 空, Price: 11174.0, Volume: 1\n",
      "TradeID: 81, Time: 2018-01-26 07:01:00, Direction: 空, Price: 11174.0, Volume: 1\n",
      "TradeID: 82, Time: 2018-01-26 23:56:00, Direction: 多, Price: 11007.0, Volume: 1\n",
      "TradeID: 83, Time: 2018-01-27 04:01:00, Direction: 空, Price: 10909.0, Volume: 1\n",
      "TradeID: 84, Time: 2018-01-27 14:01:00, Direction: 多, Price: 11232.0, Volume: 1\n",
      "TradeID: 85, Time: 2018-01-27 14:01:00, Direction: 多, Price: 11232.0, Volume: 1\n",
      "TradeID: 86, Time: 2018-01-29 10:01:00, Direction: 空, Price: 11512.0, Volume: 1\n",
      "TradeID: 87, Time: 2018-01-29 10:01:00, Direction: 空, Price: 11512.0, Volume: 1\n",
      "TradeID: 88, Time: 2018-02-01 04:01:00, Direction: 多, Price: 10070.0, Volume: 1\n",
      "TradeID: 89, Time: 2018-02-01 04:01:00, Direction: 多, Price: 10070.0, Volume: 1\n",
      "TradeID: 90, Time: 2018-02-01 12:01:00, Direction: 空, Price: 10020.0, Volume: 1\n",
      "TradeID: 91, Time: 2018-02-01 12:01:00, Direction: 空, Price: 10020.0, Volume: 1\n",
      "TradeID: 92, Time: 2018-02-02 21:09:00, Direction: 多, Price: 8549.9, Volume: 1\n",
      "TradeID: 93, Time: 2018-02-03 03:01:00, Direction: 空, Price: 8567.3, Volume: 1\n",
      "TradeID: 94, Time: 2018-02-03 14:55:00, Direction: 多, Price: 8770.0, Volume: 1\n",
      "TradeID: 95, Time: 2018-02-03 15:01:00, Direction: 多, Price: 8730.0, Volume: 1\n",
      "TradeID: 96, Time: 2018-02-04 17:35:00, Direction: 空, Price: 8821.0, Volume: 1\n",
      "TradeID: 97, Time: 2018-02-04 18:01:00, Direction: 空, Price: 8840.0, Volume: 1\n",
      "TradeID: 98, Time: 2018-02-05 06:32:00, Direction: 多, Price: 8396.8, Volume: 1\n",
      "TradeID: 99, Time: 2018-02-05 10:01:00, Direction: 空, Price: 8092.0, Volume: 1\n",
      "TradeID: 100, Time: 2018-02-06 04:08:00, Direction: 多, Price: 7119.1, Volume: 1\n",
      "TradeID: 101, Time: 2018-02-06 07:01:00, Direction: 空, Price: 6774.8, Volume: 1\n",
      "TradeID: 102, Time: 2018-02-06 13:16:00, Direction: 多, Price: 6489.1, Volume: 1\n",
      "TradeID: 103, Time: 2018-02-06 14:01:00, Direction: 空, Price: 6433.6, Volume: 1\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TradeID: 104, Time: 2018-02-06 17:12:00, Direction: 多, Price: 6482.8, Volume: 1\n",
      "TradeID: 105, Time: 2018-02-07 02:01:00, Direction: 空, Price: 7030.0, Volume: 1\n",
      "TradeID: 106, Time: 2018-02-07 03:49:00, Direction: 多, Price: 7465.0, Volume: 1\n",
      "TradeID: 107, Time: 2018-02-07 05:01:00, Direction: 多, Price: 7556.7, Volume: 1\n",
      "TradeID: 108, Time: 2018-02-07 10:52:00, Direction: 空, Price: 7316.3, Volume: 1\n",
      "TradeID: 109, Time: 2018-02-07 16:01:00, Direction: 多, Price: 7682.57579419, Volume: 1\n",
      "TradeID: 110, Time: 2018-02-08 06:30:00, Direction: 空, Price: 7876.1, Volume: 1\n",
      "TradeID: 111, Time: 2018-02-08 11:01:00, Direction: 多, Price: 8080.2, Volume: 1\n",
      "TradeID: 112, Time: 2018-02-08 23:01:00, Direction: 空, Price: 8429.0, Volume: 1\n",
      "TradeID: 113, Time: 2018-02-08 23:01:00, Direction: 空, Price: 8429.0, Volume: 1\n",
      "TradeID: 114, Time: 2018-02-09 04:01:00, Direction: 多, Price: 8427.1, Volume: 1\n",
      "TradeID: 115, Time: 2018-02-09 04:01:00, Direction: 多, Price: 8427.1, Volume: 1\n",
      "TradeID: 116, Time: 2018-02-09 09:06:00, Direction: 空, Price: 7834.0, Volume: 1\n",
      "TradeID: 117, Time: 2018-02-09 13:01:00, Direction: 空, Price: 7870.3, Volume: 1\n",
      "TradeID: 118, Time: 2018-02-09 17:21:00, Direction: 多, Price: 8273.9, Volume: 1\n",
      "TradeID: 119, Time: 2018-02-10 03:01:00, Direction: 多, Price: 8642.4, Volume: 1\n",
      "TradeID: 120, Time: 2018-02-10 23:15:00, Direction: 空, Price: 8436.0, Volume: 1\n",
      "TradeID: 121, Time: 2018-02-11 04:01:00, Direction: 空, Price: 8430.0, Volume: 1\n",
      "TradeID: 122, Time: 2018-02-11 22:40:00, Direction: 多, Price: 8413.3, Volume: 1\n",
      "TradeID: 123, Time: 2018-02-12 02:01:00, Direction: 空, Price: 8226.9, Volume: 1\n",
      "TradeID: 124, Time: 2018-02-12 07:01:00, Direction: 多, Price: 8281.9, Volume: 1\n",
      "TradeID: 125, Time: 2018-02-12 07:01:00, Direction: 多, Price: 8281.9, Volume: 1\n",
      "TradeID: 126, Time: 2018-02-13 16:01:00, Direction: 空, Price: 8609.7, Volume: 1\n",
      "TradeID: 127, Time: 2018-02-13 16:01:00, Direction: 空, Price: 8609.7, Volume: 1\n",
      "TradeID: 128, Time: 2018-02-13 21:01:00, Direction: 多, Price: 8574.9, Volume: 1\n",
      "TradeID: 129, Time: 2018-02-13 21:01:00, Direction: 多, Price: 8574.9, Volume: 1\n",
      "TradeID: 130, Time: 2018-02-14 00:01:00, Direction: 空, Price: 8491.7, Volume: 1\n",
      "TradeID: 131, Time: 2018-02-14 00:01:00, Direction: 空, Price: 8491.7, Volume: 1\n",
      "TradeID: 132, Time: 2018-02-14 12:01:00, Direction: 多, Price: 8707.0, Volume: 1\n",
      "TradeID: 133, Time: 2018-02-14 12:01:00, Direction: 多, Price: 8707.0, Volume: 1\n",
      "TradeID: 134, Time: 2018-02-17 03:01:00, Direction: 空, Price: 9944.4, Volume: 1\n",
      "TradeID: 135, Time: 2018-02-17 03:01:00, Direction: 空, Price: 9944.4, Volume: 1\n",
      "TradeID: 136, Time: 2018-02-17 10:01:00, Direction: 多, Price: 10368.0, Volume: 1\n",
      "TradeID: 137, Time: 2018-02-17 10:01:00, Direction: 多, Price: 10368.0, Volume: 1\n",
      "TradeID: 138, Time: 2018-02-18 13:56:00, Direction: 空, Price: 10445.0, Volume: 1\n",
      "TradeID: 139, Time: 2018-02-18 19:01:00, Direction: 空, Price: 10475.0, Volume: 1\n",
      "TradeID: 140, Time: 2018-02-19 12:01:00, Direction: 多, Price: 10550.08633754, Volume: 1\n",
      "TradeID: 141, Time: 2018-02-19 12:01:00, Direction: 多, Price: 10550.08633754, Volume: 1\n",
      "TradeID: 142, Time: 2018-02-21 08:16:00, Direction: 空, Price: 10930.0, Volume: 1\n",
      "TradeID: 143, Time: 2018-02-21 10:01:00, Direction: 空, Price: 11103.0, Volume: 1\n",
      "TradeID: 144, Time: 2018-02-23 22:03:00, Direction: 多, Price: 10286.0, Volume: 1\n",
      "TradeID: 145, Time: 2018-02-24 00:01:00, Direction: 多, Price: 10291.0, Volume: 1\n",
      "TradeID: 146, Time: 2018-02-24 17:01:00, Direction: 空, Price: 9999.0, Volume: 1\n",
      "TradeID: 147, Time: 2018-02-24 17:01:00, Direction: 空, Price: 9999.0, Volume: 1\n",
      "TradeID: 148, Time: 2018-02-25 00:01:00, Direction: 多, Price: 9717.8, Volume: 1\n",
      "TradeID: 149, Time: 2018-02-25 00:01:00, Direction: 多, Price: 9717.8, Volume: 1\n",
      "TradeID: 150, Time: 2018-02-25 02:01:00, Direction: 空, Price: 9647.9, Volume: 1\n",
      "TradeID: 151, Time: 2018-02-25 02:01:00, Direction: 空, Price: 9647.9, Volume: 1\n",
      "TradeID: 152, Time: 2018-02-26 03:01:00, Direction: 多, Price: 9447.9, Volume: 1\n",
      "TradeID: 153, Time: 2018-02-26 03:01:00, Direction: 多, Price: 9447.9, Volume: 1\n",
      "TradeID: 154, Time: 2018-02-26 12:01:00, Direction: 空, Price: 9590.0, Volume: 1\n",
      "TradeID: 155, Time: 2018-02-26 12:01:00, Direction: 空, Price: 9590.0, Volume: 1\n",
      "TradeID: 156, Time: 2018-02-26 19:01:00, Direction: 多, Price: 9665.6, Volume: 1\n",
      "TradeID: 157, Time: 2018-02-26 19:01:00, Direction: 多, Price: 9665.6, Volume: 1\n",
      "TradeID: 158, Time: 2018-02-28 16:01:00, Direction: 空, Price: 10752.0, Volume: 1\n",
      "TradeID: 159, Time: 2018-02-28 16:01:00, Direction: 空, Price: 10752.0, Volume: 1\n",
      "TradeID: 160, Time: 2018-03-01 19:01:00, Direction: 多, Price: 10720.0, Volume: 1\n",
      "TradeID: 161, Time: 2018-03-01 19:01:00, Direction: 多, Price: 10720.0, Volume: 1\n",
      "TradeID: 162, Time: 2018-03-02 00:01:00, Direction: 空, Price: 10718.0, Volume: 1\n",
      "TradeID: 163, Time: 2018-03-02 00:01:00, Direction: 空, Price: 10718.0, Volume: 1\n",
      "TradeID: 164, Time: 2018-03-02 01:01:00, Direction: 多, Price: 10750.0, Volume: 1\n",
      "TradeID: 165, Time: 2018-03-02 01:01:00, Direction: 多, Price: 10750.0, Volume: 1\n",
      "TradeID: 166, Time: 2018-03-04 16:01:00, Direction: 空, Price: 11144.0, Volume: 1\n",
      "TradeID: 167, Time: 2018-03-04 16:01:00, Direction: 空, Price: 11144.0, Volume: 1\n",
      "TradeID: 168, Time: 2018-03-05 09:01:00, Direction: 多, Price: 11475.0, Volume: 1\n",
      "TradeID: 169, Time: 2018-03-05 09:01:00, Direction: 多, Price: 11475.0, Volume: 1\n",
      "TradeID: 170, Time: 2018-03-06 08:01:00, Direction: 空, Price: 11372.0, Volume: 1\n",
      "TradeID: 171, Time: 2018-03-06 08:01:00, Direction: 空, Price: 11372.0, Volume: 1\n",
      "TradeID: 172, Time: 2018-03-08 06:23:00, Direction: 多, Price: 10061.0, Volume: 1\n",
      "TradeID: 173, Time: 2018-03-08 10:01:00, Direction: 空, Price: 9840.7, Volume: 1\n",
      "TradeID: 174, Time: 2018-03-09 00:01:00, Direction: 多, Price: 9898.0, Volume: 1\n",
      "TradeID: 175, Time: 2018-03-09 00:01:00, Direction: 多, Price: 9898.0, Volume: 1\n",
      "TradeID: 176, Time: 2018-03-09 01:01:00, Direction: 空, Price: 9355.0, Volume: 1\n",
      "TradeID: 177, Time: 2018-03-09 01:01:00, Direction: 空, Price: 9355.0, Volume: 1\n",
      "TradeID: 178, Time: 2018-03-09 19:48:00, Direction: 多, Price: 8940.9, Volume: 1\n",
      "TradeID: 179, Time: 2018-03-10 01:01:00, Direction: 空, Price: 8669.5, Volume: 1\n",
      "TradeID: 180, Time: 2018-03-10 06:40:00, Direction: 多, Price: 9209.1, Volume: 1\n",
      "TradeID: 181, Time: 2018-03-10 08:01:00, Direction: 多, Price: 9256.4, Volume: 1\n",
      "TradeID: 182, Time: 2018-03-11 04:39:00, Direction: 空, Price: 8818.5, Volume: 1\n",
      "TradeID: 183, Time: 2018-03-11 05:01:00, Direction: 空, Price: 8842.0, Volume: 1\n",
      "TradeID: 184, Time: 2018-03-11 19:58:00, Direction: 多, Price: 9039.9, Volume: 1\n",
      "TradeID: 185, Time: 2018-03-12 02:01:00, Direction: 多, Price: 9615.7, Volume: 1\n",
      "TradeID: 186, Time: 2018-03-12 22:59:00, Direction: 空, Price: 9199.8, Volume: 1\n",
      "TradeID: 187, Time: 2018-03-13 00:01:00, Direction: 空, Price: 9160.1, Volume: 1\n",
      "TradeID: 188, Time: 2018-03-13 12:43:00, Direction: 多, Price: 9409.0, Volume: 1\n",
      "TradeID: 189, Time: 2018-03-13 16:01:00, Direction: 空, Price: 9203.0, Volume: 1\n",
      "TradeID: 190, Time: 2018-03-13 22:01:00, Direction: 多, Price: 9117.0, Volume: 1\n",
      "TradeID: 191, Time: 2018-03-13 22:01:00, Direction: 多, Price: 9117.0, Volume: 1\n",
      "TradeID: 192, Time: 2018-03-14 13:01:00, Direction: 空, Price: 9113.9, Volume: 1\n",
      "TradeID: 193, Time: 2018-03-14 13:01:00, Direction: 空, Price: 9113.9, Volume: 1\n",
      "TradeID: 194, Time: 2018-03-15 16:54:00, Direction: 多, Price: 8237.0, Volume: 1\n",
      "TradeID: 195, Time: 2018-03-16 00:01:00, Direction: 空, Price: 8128.1, Volume: 1\n",
      "TradeID: 196, Time: 2018-03-16 05:01:00, Direction: 多, Price: 8245.0, Volume: 1\n",
      "TradeID: 197, Time: 2018-03-16 05:01:00, Direction: 多, Price: 8245.0, Volume: 1\n",
      "TradeID: 198, Time: 2018-03-16 18:01:00, Direction: 空, Price: 8195.1, Volume: 1\n",
      "TradeID: 199, Time: 2018-03-16 18:01:00, Direction: 空, Price: 8195.1, Volume: 1\n",
      "TradeID: 200, Time: 2018-03-16 21:01:00, Direction: 多, Price: 8191.7, Volume: 1\n",
      "TradeID: 201, Time: 2018-03-16 21:01:00, Direction: 多, Price: 8191.7, Volume: 1\n",
      "TradeID: 202, Time: 2018-03-17 20:01:00, Direction: 空, Price: 8161.7, Volume: 1\n",
      "TradeID: 203, Time: 2018-03-17 20:01:00, Direction: 空, Price: 8161.7, Volume: 1\n",
      "TradeID: 204, Time: 2018-03-19 05:04:00, Direction: 多, Price: 7750.0, Volume: 1\n",
      "TradeID: 205, Time: 2018-03-19 08:01:00, Direction: 多, Price: 8289.57718781, Volume: 1\n",
      "TradeID: 206, Time: 2018-03-22 14:01:00, Direction: 空, Price: 9003.8, Volume: 1\n",
      "TradeID: 207, Time: 2018-03-22 14:01:00, Direction: 空, Price: 9003.8, Volume: 1\n",
      "TradeID: 208, Time: 2018-03-24 07:01:00, Direction: 多, Price: 8657.4, Volume: 1\n",
      "TradeID: 209, Time: 2018-03-24 07:01:00, Direction: 多, Price: 8657.4, Volume: 1\n",
      "TradeID: 210, Time: 2018-03-25 06:01:00, Direction: 空, Price: 8647.0, Volume: 1\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TradeID: 211, Time: 2018-03-25 06:01:00, Direction: 空, Price: 8647.0, Volume: 1\n",
      "TradeID: 212, Time: 2018-03-26 05:01:00, Direction: 多, Price: 8590.9, Volume: 1\n",
      "TradeID: 213, Time: 2018-03-26 05:01:00, Direction: 多, Price: 8590.9, Volume: 1\n",
      "TradeID: 214, Time: 2018-03-26 09:01:00, Direction: 空, Price: 8371.0, Volume: 1\n",
      "TradeID: 215, Time: 2018-03-26 09:01:00, Direction: 空, Price: 8371.0, Volume: 1\n",
      "TradeID: 216, Time: 2018-03-26 13:01:00, Direction: 多, Price: 8433.9, Volume: 1\n",
      "TradeID: 217, Time: 2018-03-26 13:01:00, Direction: 多, Price: 8433.9, Volume: 1\n",
      "TradeID: 218, Time: 2018-03-26 16:01:00, Direction: 空, Price: 8405.2, Volume: 1\n",
      "TradeID: 219, Time: 2018-03-26 16:01:00, Direction: 空, Price: 8405.2, Volume: 1\n",
      "TradeID: 220, Time: 2018-03-27 23:01:00, Direction: 多, Price: 8058.6, Volume: 1\n",
      "TradeID: 221, Time: 2018-03-27 23:01:00, Direction: 多, Price: 8058.6, Volume: 1\n",
      "TradeID: 222, Time: 2018-03-28 02:01:00, Direction: 空, Price: 7906.5, Volume: 1\n",
      "TradeID: 223, Time: 2018-03-28 02:01:00, Direction: 空, Price: 7906.5, Volume: 1\n",
      "TradeID: 224, Time: 2018-03-28 07:01:00, Direction: 多, Price: 7969.6, Volume: 1\n",
      "TradeID: 225, Time: 2018-03-28 07:01:00, Direction: 多, Price: 7969.6, Volume: 1\n",
      "TradeID: 226, Time: 2018-03-28 23:01:00, Direction: 空, Price: 7897.9, Volume: 1\n",
      "TradeID: 227, Time: 2018-03-28 23:01:00, Direction: 空, Price: 7897.9, Volume: 1\n",
      "TradeID: 228, Time: 2018-03-29 03:01:00, Direction: 多, Price: 7936.2, Volume: 1\n",
      "TradeID: 229, Time: 2018-03-29 03:01:00, Direction: 多, Price: 7936.2, Volume: 1\n",
      "TradeID: 230, Time: 2018-03-29 13:01:00, Direction: 空, Price: 7617.9, Volume: 1\n",
      "TradeID: 231, Time: 2018-03-29 13:01:00, Direction: 空, Price: 7617.9, Volume: 1\n",
      "TradeID: 232, Time: 2018-03-30 13:49:00, Direction: 多, Price: 7080.2, Volume: 1\n",
      "TradeID: 233, Time: 2018-03-30 19:01:00, Direction: 空, Price: 6905.7, Volume: 1\n",
      "TradeID: 234, Time: 2018-03-31 07:01:00, Direction: 多, Price: 6821.3, Volume: 1\n",
      "TradeID: 235, Time: 2018-03-31 07:01:00, Direction: 多, Price: 6821.3, Volume: 1\n",
      "TradeID: 236, Time: 2018-03-31 14:01:00, Direction: 空, Price: 6915.1, Volume: 1\n",
      "TradeID: 237, Time: 2018-03-31 14:01:00, Direction: 空, Price: 6915.1, Volume: 1\n",
      "TradeID: 238, Time: 2018-03-31 19:01:00, Direction: 多, Price: 7120.4, Volume: 1\n",
      "TradeID: 239, Time: 2018-03-31 19:01:00, Direction: 多, Price: 7120.4, Volume: 1\n",
      "TradeID: 240, Time: 2018-04-01 07:01:00, Direction: 空, Price: 6962.0, Volume: 1\n",
      "TradeID: 241, Time: 2018-04-01 07:01:00, Direction: 空, Price: 6962.0, Volume: 1\n",
      "TradeID: 242, Time: 2018-04-01 09:01:00, Direction: 多, Price: 6976.0, Volume: 1\n",
      "TradeID: 243, Time: 2018-04-01 09:01:00, Direction: 多, Price: 6976.0, Volume: 1\n",
      "TradeID: 244, Time: 2018-04-01 15:01:00, Direction: 空, Price: 6841.57583438, Volume: 1\n",
      "TradeID: 245, Time: 2018-04-01 15:01:00, Direction: 空, Price: 6841.57583438, Volume: 1\n",
      "TradeID: 246, Time: 2018-04-02 03:11:00, Direction: 多, Price: 6916.4, Volume: 1\n",
      "TradeID: 247, Time: 2018-04-02 07:01:00, Direction: 空, Price: 6790.1, Volume: 1\n",
      "TradeID: 248, Time: 2018-04-02 12:01:00, Direction: 多, Price: 6995.9, Volume: 1\n",
      "TradeID: 249, Time: 2018-04-02 12:01:00, Direction: 多, Price: 6995.9, Volume: 1\n",
      "TradeID: 250, Time: 2018-04-04 19:01:00, Direction: 空, Price: 7080.0, Volume: 1\n",
      "TradeID: 251, Time: 2018-04-04 19:01:00, Direction: 空, Price: 7080.0, Volume: 1\n",
      "TradeID: 252, Time: 2018-04-06 04:01:00, Direction: 多, Price: 6759.0, Volume: 1\n",
      "TradeID: 253, Time: 2018-04-06 04:01:00, Direction: 多, Price: 6759.0, Volume: 1\n",
      "TradeID: 254, Time: 2018-04-06 11:01:00, Direction: 空, Price: 6759.6, Volume: 1\n",
      "TradeID: 255, Time: 2018-04-06 11:01:00, Direction: 空, Price: 6759.6, Volume: 1\n",
      "TradeID: 256, Time: 2018-04-07 12:01:00, Direction: 多, Price: 6847.79244514, Volume: 1\n",
      "TradeID: 257, Time: 2018-04-07 12:01:00, Direction: 多, Price: 6847.79244514, Volume: 1\n",
      "TradeID: 258, Time: 2018-04-08 23:01:00, Direction: 空, Price: 7032.7, Volume: 1\n",
      "TradeID: 259, Time: 2018-04-08 23:01:00, Direction: 空, Price: 7032.7, Volume: 1\n",
      "TradeID: 260, Time: 2018-04-09 06:01:00, Direction: 多, Price: 7019.1, Volume: 1\n",
      "TradeID: 261, Time: 2018-04-09 06:01:00, Direction: 多, Price: 7019.1, Volume: 1\n",
      "TradeID: 262, Time: 2018-04-09 22:08:00, Direction: 空, Price: 6676.89842209, Volume: 1\n",
      "TradeID: 263, Time: 2018-04-10 00:01:00, Direction: 空, Price: 6710.6, Volume: 1\n",
      "TradeID: 264, Time: 2018-04-10 20:01:00, Direction: 多, Price: 6727.22189094, Volume: 1\n",
      "TradeID: 265, Time: 2018-04-10 20:01:00, Direction: 多, Price: 6727.22189094, Volume: 1\n",
      "TradeID: 266, Time: 2018-04-14 13:01:00, Direction: 空, Price: 7982.1, Volume: 1\n",
      "TradeID: 267, Time: 2018-04-14 13:01:00, Direction: 空, Price: 7982.1, Volume: 1\n",
      "TradeID: 268, Time: 2018-04-15 01:01:00, Direction: 多, Price: 7984.9, Volume: 1\n",
      "TradeID: 269, Time: 2018-04-15 01:01:00, Direction: 多, Price: 7984.9, Volume: 1\n",
      "TradeID: 270, Time: 2018-04-16 18:01:00, Direction: 空, Price: 8085.4, Volume: 1\n",
      "TradeID: 271, Time: 2018-04-16 18:01:00, Direction: 空, Price: 8085.4, Volume: 1\n",
      "TradeID: 272, Time: 2018-04-17 17:01:00, Direction: 多, Price: 8136.2, Volume: 1\n",
      "TradeID: 273, Time: 2018-04-17 17:01:00, Direction: 多, Price: 8136.2, Volume: 1\n",
      "TradeID: 274, Time: 2018-04-18 21:01:00, Direction: 空, Price: 8100.0, Volume: 1\n",
      "TradeID: 275, Time: 2018-04-18 21:01:00, Direction: 空, Price: 8100.0, Volume: 1\n",
      "TradeID: 276, Time: 2018-04-19 01:01:00, Direction: 多, Price: 8116.0, Volume: 1\n",
      "TradeID: 277, Time: 2018-04-19 01:01:00, Direction: 多, Price: 8116.0, Volume: 1\n",
      "TradeID: 278, Time: 2018-04-22 05:01:00, Direction: 空, Price: 8767.7, Volume: 1\n",
      "TradeID: 279, Time: 2018-04-22 05:01:00, Direction: 空, Price: 8767.7, Volume: 1\n",
      "TradeID: 280, Time: 2018-04-22 14:01:00, Direction: 多, Price: 8839.8, Volume: 1\n",
      "TradeID: 281, Time: 2018-04-22 14:01:00, Direction: 多, Price: 8839.8, Volume: 1\n",
      "TradeID: 282, Time: 2018-04-23 23:01:00, Direction: 空, Price: 8920.81752539, Volume: 1\n",
      "TradeID: 283, Time: 2018-04-23 23:01:00, Direction: 空, Price: 8920.81752539, Volume: 1\n",
      "TradeID: 284, Time: 2018-04-24 05:01:00, Direction: 多, Price: 8928.0, Volume: 1\n",
      "TradeID: 285, Time: 2018-04-24 05:01:00, Direction: 多, Price: 8928.0, Volume: 1\n",
      "TradeID: 286, Time: 2018-04-25 18:50:00, Direction: 空, Price: 9068.0, Volume: 1\n",
      "TradeID: 287, Time: 2018-04-25 23:01:00, Direction: 空, Price: 8898.7, Volume: 1\n",
      "TradeID: 288, Time: 2018-04-27 05:01:00, Direction: 多, Price: 9111.6, Volume: 1\n",
      "TradeID: 289, Time: 2018-04-27 05:01:00, Direction: 多, Price: 9111.6, Volume: 1\n",
      "TradeID: 290, Time: 2018-04-28 05:01:00, Direction: 空, Price: 8969.8, Volume: 1\n",
      "TradeID: 291, Time: 2018-04-28 05:01:00, Direction: 空, Price: 8969.8, Volume: 1\n",
      "TradeID: 292, Time: 2018-04-28 20:30:00, Direction: 多, Price: 9400.0, Volume: 1\n",
      "TradeID: 293, Time: 2018-04-28 23:01:00, Direction: 空, Price: 9300.0, Volume: 1\n",
      "TradeID: 294, Time: 2018-04-29 00:01:00, Direction: 多, Price: 9357.6, Volume: 1\n",
      "TradeID: 295, Time: 2018-04-29 00:01:00, Direction: 多, Price: 9357.6, Volume: 1\n",
      "TradeID: 296, Time: 2018-04-30 12:01:00, Direction: 空, Price: 9279.5, Volume: 1\n",
      "TradeID: 297, Time: 2018-04-30 12:01:00, Direction: 空, Price: 9279.5, Volume: 1\n",
      "TradeID: 298, Time: 2018-04-30 19:01:00, Direction: 多, Price: 9262.4, Volume: 1\n",
      "TradeID: 299, Time: 2018-04-30 19:01:00, Direction: 多, Price: 9262.4, Volume: 1\n",
      "TradeID: 300, Time: 2018-05-01 05:01:00, Direction: 空, Price: 9275.7, Volume: 1\n",
      "TradeID: 301, Time: 2018-05-01 05:01:00, Direction: 空, Price: 9275.7, Volume: 1\n",
      "TradeID: 302, Time: 2018-05-02 08:01:00, Direction: 多, Price: 9075.1, Volume: 1\n",
      "TradeID: 303, Time: 2018-05-02 08:01:00, Direction: 多, Price: 9075.1, Volume: 1\n",
      "TradeID: 304, Time: 2018-05-05 00:01:00, Direction: 空, Price: 9618.1, Volume: 1\n",
      "TradeID: 305, Time: 2018-05-05 00:01:00, Direction: 空, Price: 9618.1, Volume: 1\n",
      "TradeID: 306, Time: 2018-05-05 04:01:00, Direction: 多, Price: 9698.0, Volume: 1\n",
      "TradeID: 307, Time: 2018-05-05 04:01:00, Direction: 多, Price: 9698.0, Volume: 1\n",
      "TradeID: 308, Time: 2018-05-05 15:01:00, Direction: 空, Price: 9790.0, Volume: 1\n",
      "TradeID: 309, Time: 2018-05-05 15:01:00, Direction: 空, Price: 9790.0, Volume: 1\n",
      "TradeID: 310, Time: 2018-05-05 17:01:00, Direction: 多, Price: 9832.6, Volume: 1\n",
      "TradeID: 311, Time: 2018-05-05 17:01:00, Direction: 多, Price: 9832.6, Volume: 1\n",
      "TradeID: 312, Time: 2018-05-06 15:01:00, Direction: 空, Price: 9695.4, Volume: 1\n",
      "TradeID: 313, Time: 2018-05-06 15:01:00, Direction: 空, Price: 9695.4, Volume: 1\n",
      "TradeID: 314, Time: 2018-05-08 12:01:00, Direction: 多, Price: 9432.9, Volume: 1\n",
      "TradeID: 315, Time: 2018-05-08 12:01:00, Direction: 多, Price: 9432.9, Volume: 1\n",
      "TradeID: 316, Time: 2018-05-08 22:01:00, Direction: 空, Price: 9127.7, Volume: 1\n",
      "TradeID: 317, Time: 2018-05-08 22:01:00, Direction: 空, Price: 9127.7, Volume: 1\n",
      "TradeID: 318, Time: 2018-05-09 19:01:00, Direction: 多, Price: 9205.3, Volume: 1\n",
      "TradeID: 319, Time: 2018-05-09 19:01:00, Direction: 多, Price: 9205.3, Volume: 1\n",
      "TradeID: 320, Time: 2018-05-11 04:01:00, Direction: 空, Price: 9092.5, Volume: 1\n",
      "TradeID: 321, Time: 2018-05-11 04:01:00, Direction: 空, Price: 9092.5, Volume: 1\n",
      "TradeID: 322, Time: 2018-05-13 08:01:00, Direction: 多, Price: 8483.0, Volume: 1\n",
      "TradeID: 323, Time: 2018-05-13 08:01:00, Direction: 多, Price: 8483.0, Volume: 1\n",
      "TradeID: 324, Time: 2018-05-13 14:01:00, Direction: 空, Price: 8384.6, Volume: 1\n",
      "TradeID: 325, Time: 2018-05-13 14:01:00, Direction: 空, Price: 8384.6, Volume: 1\n",
      "TradeID: 326, Time: 2018-05-13 20:01:00, Direction: 多, Price: 8550.0, Volume: 1\n",
      "TradeID: 327, Time: 2018-05-13 20:01:00, Direction: 多, Price: 8550.0, Volume: 1\n",
      "TradeID: 328, Time: 2018-05-15 23:01:00, Direction: 空, Price: 8509.6, Volume: 1\n",
      "TradeID: 329, Time: 2018-05-15 23:01:00, Direction: 空, Price: 8509.6, Volume: 1\n",
      "TradeID: 330, Time: 2018-05-17 07:01:00, Direction: 多, Price: 8274.1, Volume: 1\n",
      "TradeID: 331, Time: 2018-05-17 07:01:00, Direction: 多, Price: 8274.1, Volume: 1\n",
      "TradeID: 332, Time: 2018-05-17 15:01:00, Direction: 空, Price: 8334.4, Volume: 1\n",
      "TradeID: 333, Time: 2018-05-17 15:01:00, Direction: 空, Price: 8334.4, Volume: 1\n",
      "TradeID: 334, Time: 2018-05-17 20:01:00, Direction: 多, Price: 8303.8, Volume: 1\n",
      "TradeID: 335, Time: 2018-05-17 20:01:00, Direction: 多, Price: 8303.8, Volume: 1\n",
      "TradeID: 336, Time: 2018-05-18 03:01:00, Direction: 空, Price: 8162.3, Volume: 1\n",
      "TradeID: 337, Time: 2018-05-18 03:01:00, Direction: 空, Price: 8162.3, Volume: 1\n",
      "TradeID: 338, Time: 2018-05-19 04:01:00, Direction: 多, Price: 8233.0, Volume: 1\n",
      "TradeID: 339, Time: 2018-05-19 04:01:00, Direction: 多, Price: 8233.0, Volume: 1\n",
      "TradeID: 340, Time: 2018-05-20 15:01:00, Direction: 空, Price: 8230.1, Volume: 1\n",
      "TradeID: 341, Time: 2018-05-20 15:01:00, Direction: 空, Price: 8230.1, Volume: 1\n",
      "TradeID: 342, Time: 2018-05-21 00:01:00, Direction: 多, Price: 8380.1, Volume: 1\n",
      "TradeID: 343, Time: 2018-05-21 00:01:00, Direction: 多, Price: 8380.1, Volume: 1\n",
      "TradeID: 344, Time: 2018-05-21 23:01:00, Direction: 空, Price: 8401.5, Volume: 1\n",
      "TradeID: 345, Time: 2018-05-21 23:01:00, Direction: 空, Price: 8401.5, Volume: 1\n",
      "TradeID: 346, Time: 2018-05-25 13:01:00, Direction: 多, Price: 7585.1, Volume: 1\n",
      "TradeID: 347, Time: 2018-05-25 13:01:00, Direction: 多, Price: 7585.1, Volume: 1\n",
      "TradeID: 348, Time: 2018-05-26 01:01:00, Direction: 空, Price: 7442.1, Volume: 1\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TradeID: 349, Time: 2018-05-26 01:01:00, Direction: 空, Price: 7442.1, Volume: 1\n",
      "TradeID: 350, Time: 2018-05-26 14:01:00, Direction: 多, Price: 7433.1, Volume: 1\n",
      "TradeID: 351, Time: 2018-05-26 14:01:00, Direction: 多, Price: 7433.1, Volume: 1\n",
      "TradeID: 352, Time: 2018-05-27 11:01:00, Direction: 空, Price: 7297.1, Volume: 1\n",
      "TradeID: 353, Time: 2018-05-27 11:01:00, Direction: 空, Price: 7297.1, Volume: 1\n",
      "TradeID: 354, Time: 2018-05-28 06:01:00, Direction: 多, Price: 7329.0, Volume: 1\n",
      "TradeID: 355, Time: 2018-05-28 06:01:00, Direction: 多, Price: 7329.0, Volume: 1\n",
      "TradeID: 356, Time: 2018-05-28 16:01:00, Direction: 空, Price: 7205.3, Volume: 1\n",
      "TradeID: 357, Time: 2018-05-28 16:01:00, Direction: 空, Price: 7205.3, Volume: 1\n",
      "TradeID: 358, Time: 2018-05-30 00:01:00, Direction: 多, Price: 7422.1, Volume: 1\n",
      "TradeID: 359, Time: 2018-05-30 00:01:00, Direction: 多, Price: 7422.1, Volume: 1\n",
      "TradeID: 360, Time: 2018-05-31 00:01:00, Direction: 空, Price: 7327.5, Volume: 1\n",
      "TradeID: 361, Time: 2018-05-31 00:01:00, Direction: 空, Price: 7327.5, Volume: 1\n",
      "TradeID: 362, Time: 2018-05-31 23:01:00, Direction: 多, Price: 7567.7, Volume: 1\n",
      "TradeID: 363, Time: 2018-05-31 23:01:00, Direction: 多, Price: 7567.7, Volume: 1\n",
      "TradeID: 364, Time: 2018-06-01 12:01:00, Direction: 空, Price: 7471.9, Volume: 1\n",
      "TradeID: 365, Time: 2018-06-01 12:01:00, Direction: 空, Price: 7471.9, Volume: 1\n",
      "TradeID: 366, Time: 2018-06-02 16:01:00, Direction: 多, Price: 7649.9, Volume: 1\n",
      "TradeID: 367, Time: 2018-06-02 16:01:00, Direction: 多, Price: 7649.9, Volume: 1\n",
      "TradeID: 368, Time: 2018-06-04 12:01:00, Direction: 空, Price: 7696.4, Volume: 1\n",
      "TradeID: 369, Time: 2018-06-04 12:01:00, Direction: 空, Price: 7696.4, Volume: 1\n",
      "TradeID: 370, Time: 2018-06-06 08:01:00, Direction: 多, Price: 7630.9, Volume: 1\n",
      "TradeID: 371, Time: 2018-06-06 08:01:00, Direction: 多, Price: 7630.9, Volume: 1\n",
      "TradeID: 372, Time: 2018-06-07 01:01:00, Direction: 空, Price: 7517.10628706, Volume: 1\n",
      "TradeID: 373, Time: 2018-06-07 01:01:00, Direction: 空, Price: 7517.10628706, Volume: 1\n",
      "TradeID: 374, Time: 2018-06-07 10:01:00, Direction: 多, Price: 7722.9, Volume: 1\n",
      "TradeID: 375, Time: 2018-06-07 10:01:00, Direction: 多, Price: 7722.9, Volume: 1\n",
      "TradeID: 376, Time: 2018-06-08 06:01:00, Direction: 空, Price: 7662.0, Volume: 1\n",
      "TradeID: 377, Time: 2018-06-08 06:01:00, Direction: 空, Price: 7662.0, Volume: 1\n",
      "TradeID: 378, Time: 2018-06-09 13:01:00, Direction: 多, Price: 7658.2, Volume: 1\n",
      "TradeID: 379, Time: 2018-06-09 13:01:00, Direction: 多, Price: 7658.2, Volume: 1\n",
      "TradeID: 380, Time: 2018-06-09 22:01:00, Direction: 空, Price: 7593.4, Volume: 1\n",
      "TradeID: 381, Time: 2018-06-09 22:01:00, Direction: 空, Price: 7593.4, Volume: 1\n",
      "TradeID: 382, Time: 2018-06-12 03:01:00, Direction: 多, Price: 6747.9, Volume: 1\n",
      "TradeID: 383, Time: 2018-06-12 03:01:00, Direction: 多, Price: 6747.9, Volume: 1\n",
      "TradeID: 384, Time: 2018-06-13 03:01:00, Direction: 空, Price: 6677.6768879, Volume: 1\n",
      "TradeID: 385, Time: 2018-06-13 03:01:00, Direction: 空, Price: 6677.6768879, Volume: 1\n",
      "TradeID: 386, Time: 2018-06-14 16:14:00, Direction: 多, Price: 6547.0, Volume: 1\n",
      "TradeID: 387, Time: 2018-06-14 20:01:00, Direction: 多, Price: 6523.3, Volume: 1\n",
      "TradeID: 388, Time: 2018-06-15 23:01:00, Direction: 空, Price: 6526.8, Volume: 1\n",
      "TradeID: 389, Time: 2018-06-15 23:01:00, Direction: 空, Price: 6526.8, Volume: 1\n",
      "TradeID: 390, Time: 2018-06-17 03:01:00, Direction: 多, Price: 6510.0, Volume: 1\n",
      "TradeID: 391, Time: 2018-06-17 03:01:00, Direction: 多, Price: 6510.0, Volume: 1\n",
      "TradeID: 392, Time: 2018-06-17 23:01:00, Direction: 空, Price: 6471.6, Volume: 1\n",
      "TradeID: 393, Time: 2018-06-17 23:01:00, Direction: 空, Price: 6471.6, Volume: 1\n",
      "TradeID: 394, Time: 2018-06-19 03:01:00, Direction: 多, Price: 6729.8, Volume: 1\n",
      "TradeID: 395, Time: 2018-06-19 03:01:00, Direction: 多, Price: 6729.8, Volume: 1\n",
      "TradeID: 396, Time: 2018-06-20 01:01:00, Direction: 空, Price: 6709.2, Volume: 1\n",
      "TradeID: 397, Time: 2018-06-20 01:01:00, Direction: 空, Price: 6709.2, Volume: 1\n",
      "TradeID: 398, Time: 2018-06-20 04:01:00, Direction: 多, Price: 6738.1, Volume: 1\n",
      "TradeID: 399, Time: 2018-06-20 04:01:00, Direction: 多, Price: 6738.1, Volume: 1\n",
      "TradeID: 400, Time: 2018-06-20 13:01:00, Direction: 空, Price: 6599.3, Volume: 1\n",
      "TradeID: 401, Time: 2018-06-20 13:01:00, Direction: 空, Price: 6599.3, Volume: 1\n",
      "TradeID: 402, Time: 2018-06-21 08:01:00, Direction: 多, Price: 6759.69107158, Volume: 1\n",
      "TradeID: 403, Time: 2018-06-21 08:01:00, Direction: 多, Price: 6759.69107158, Volume: 1\n",
      "TradeID: 404, Time: 2018-06-21 20:01:00, Direction: 空, Price: 6729.1, Volume: 1\n",
      "TradeID: 405, Time: 2018-06-21 20:01:00, Direction: 空, Price: 6729.1, Volume: 1\n",
      "TradeID: 406, Time: 2018-06-24 02:01:00, Direction: 多, Price: 6128.1, Volume: 1\n",
      "TradeID: 407, Time: 2018-06-24 02:01:00, Direction: 多, Price: 6128.1, Volume: 1\n",
      "TradeID: 408, Time: 2018-06-24 14:01:00, Direction: 空, Price: 5877.0, Volume: 1\n",
      "TradeID: 409, Time: 2018-06-24 14:01:00, Direction: 空, Price: 5877.0, Volume: 1\n",
      "TradeID: 410, Time: 2018-06-25 00:47:00, Direction: 多, Price: 6199.9, Volume: 1\n",
      "TradeID: 411, Time: 2018-06-25 07:01:00, Direction: 空, Price: 6147.6, Volume: 1\n",
      "TradeID: 412, Time: 2018-06-25 09:01:00, Direction: 多, Price: 6162.3, Volume: 1\n",
      "TradeID: 413, Time: 2018-06-25 09:01:00, Direction: 多, Price: 6162.3, Volume: 1\n",
      "TradeID: 414, Time: 2018-06-26 20:01:00, Direction: 空, Price: 6196.0, Volume: 1\n",
      "TradeID: 415, Time: 2018-06-26 20:01:00, Direction: 空, Price: 6196.0, Volume: 1\n",
      "TradeID: 416, Time: 2018-06-28 05:01:00, Direction: 多, Price: 6127.4, Volume: 1\n",
      "TradeID: 417, Time: 2018-06-28 05:01:00, Direction: 多, Price: 6127.4, Volume: 1\n",
      "TradeID: 418, Time: 2018-06-28 23:01:00, Direction: 空, Price: 6114.0, Volume: 1\n",
      "TradeID: 419, Time: 2018-06-28 23:01:00, Direction: 空, Price: 6114.0, Volume: 1\n",
      "TradeID: 420, Time: 2018-06-30 05:01:00, Direction: 多, Price: 5900.1, Volume: 1\n",
      "TradeID: 421, Time: 2018-06-30 05:01:00, Direction: 多, Price: 5900.1, Volume: 1\n"
     ]
    },
    {
     "ename": "KeyError",
     "evalue": "'422'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-3-6d8c4e5951ab>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[1;31m# 显示前10条成交记录\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      2\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m10000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m     \u001b[0md\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mengine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtradeDict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__dict__\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      4\u001b[0m     \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'TradeID: %s, Time: %s, Direction: %s, Price: %s, Volume: %s'\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0md\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'tradeID'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0md\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'dt'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0md\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'direction'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0md\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'price'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0md\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'volume'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mKeyError\u001b[0m: '422'"
     ]
    }
   ],
   "source": [
    "# 显示前10条成交记录\n",
    "for i in range(10000):\n",
    "    d = engine.tradeDict[str(i+1)].__dict__\n",
    "    print('TradeID: %s, Time: %s, Direction: %s, Price: %s, Volume: %s' %(d['tradeID'], d['dt'], d['direction'], d['price'], d['volume']))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 策略编写与参数设置"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 查看绩效回测绩效"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2018-07-14 14:54:55.089638\t计算按日统计结果\n",
      "2018-07-14 14:54:55.112614\t------------------------------\n",
      "2018-07-14 14:54:55.112614\t首个交易日：\t2018-01-01\n",
      "2018-07-14 14:54:55.112614\t最后交易日：\t2018-06-30\n",
      "2018-07-14 14:54:55.113613\t总交易日：\t181\n",
      "2018-07-14 14:54:55.113613\t盈利交易日\t92\n",
      "2018-07-14 14:54:55.113613\t亏损交易日：\t89\n",
      "2018-07-14 14:54:55.113613\t起始资金：\t1000000\n",
      "2018-07-14 14:54:55.113613\t结束资金：\t1,013,222.28\n",
      "2018-07-14 14:54:55.113613\t总收益率：\t1.32%\n",
      "2018-07-14 14:54:55.113613\t年化收益：\t1.75%\n",
      "2018-07-14 14:54:55.113613\t总盈亏：\t13,222.28\n",
      "2018-07-14 14:54:55.113613\t最大回撤: \t-2,169.12\n",
      "2018-07-14 14:54:55.113613\t百分比最大回撤: -0.21%\n",
      "2018-07-14 14:54:55.113613\t总手续费：\t3,840.99\n",
      "2018-07-14 14:54:55.113613\t总滑点：\t84.2\n",
      "2018-07-14 14:54:55.113613\t总成交金额：\t3,840,985.45\n",
      "2018-07-14 14:54:55.113613\t总成交笔数：\t421\n",
      "2018-07-14 14:54:55.113613\t日均盈亏：\t73.05\n",
      "2018-07-14 14:54:55.113613\t日均手续费：\t21.22\n",
      "2018-07-14 14:54:55.113613\t日均滑点：\t0.47\n",
      "2018-07-14 14:54:55.113613\t日均成交金额：\t21,220.91\n",
      "2018-07-14 14:54:55.113613\t日均成交笔数：\t2.33\n",
      "2018-07-14 14:54:55.113613\t日均收益率：\t0.01%\n",
      "2018-07-14 14:54:55.113613\t收益标准差：\t0.04%\n",
      "2018-07-14 14:54:55.113613\tSharpe Ratio：\t2.93\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nlyQVFRXps88+05o1ayx9zOzatUtPPfWUVq5cqYMHD1Z4jOTl5Wn16tVyOp0aN26cbrnlFrOLHRWB\ndfPZZ59p3rx5cjgcio+P15NPPqnGjRtr/vz5+uSTT5ScnCxJWrZsmdxut8klr12B9bJv374Kvz8c\nMys1adIknThxQpJ05MgRXXvttfrtb39ryWOmUgbC9vbbbxvTpk0zDMMw/v73vxu/+tWvTC6Redat\nW2fMnz/fMAzD+Ne//mX85Cc/MfLy8owVK1aYXDLznTt3zhg8eHCZdb/85S+Njz76yDAMw3jssceM\nd955x4yi1Rlz5swxVq9ebelj5oUXXjAGDhxoDB8+3DCMio+Rb775xhg4cKBRVFRkfP/99/7lWHdx\n3YwePdrYt2+fYRiG8eqrrxoLFiwwDMMwRo0aZZw8edK0ckbbxfVS0feHY2Z4mfXfffedMWjQIOP4\n8eOGYVjvmKmKtZokIsTj8ahPnz6SpK5du2rPnj0ml8g8t912mx588EFJkmEYcjgc2rNnjzZs2KDR\no0dr5syZ8nq9JpfSHPn5+Tp79qxycnI0ZswY7dy5U3v37lWvXr0kSX379tXWrVtNLqV5Pv30U335\n5ZcaOXKkpY+Z9PR0LVmyxP+4omNk9+7d6tatm+Lj4+V2u5Wenq78/Hyzihw1F9fN4sWL1bFjR0lS\nSUmJEhIS5PP5dPDgQc2aNUujRo3SunXrzCpu1FxcLxV9fzhmylqyZInuuusuNW3a1JLHTFUIg9Xg\n9Xr9XX+S5HA4dOHCBRNLZJ7k5GS5XC55vV498MADmjhxorp06aKHH35Yr7zyilq1aqVnn33W7GKa\nIjExUWPHjtWKFSs0d+5cTZkyRYZhyGazSfqh7goKCkwupXmef/55jR8/XpIsfcz0799fTuePI3Yq\nOka8Xm+ZLqzk5GRLBOaL66Zp06aSpE8++UQvv/yy7r77bp05c0Z33XWXfvOb3+jFF1/UqlWrYj70\nXFwvFX1/OGZ+dPLkSW3btk1Dhw6VJEseM1UhDFaDy+VSYWGh/7HP5yt38FnJsWPHNGbMGA0ePFh3\n3HGH+vXrp6uvvlqS1K9fP+3bt8/kEpqjTZs2GjRokGw2m9q0aaPU1FSdPHnS//fCwkKlpKSYWELz\nfP/99zpw4IBuuOEGSeKYCRA4hrT0GLn4nFNYWGjZ8U1vvvmmZs+erRdeeEFpaWlKSkrSmDFjlJSU\n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\nilaRAQAAYl5UwuDy5cv16KOPqqioSJK0cOFCTZw4UatWrZJhGHr//ff17bffauXKlVq9erVWrFih\nxYsXq7i4WK+++qrat2+vVatWaciQIVq2bFk0igwAAGAJUQmD6enpWrJkif/x3r171atXL0lS3759\ntXXrVu3evVvdunVTfHy83G630tPTlZ+fL4/Hoz59+vi33bZtWzSKDAAAYAlRCYP9+/eX0+n0PzYM\nQzabTZKUnJysgoICeb1eud1u/zbJycnyer1l1pduCwAAgMgw5QISu/3H3RYWFiolJUUul0uFhYVl\n1rvd7jLrS7cFAABAZJgSBjt16qTt27dLkjZt2qSePXuqS5cu8ng8KioqUkFBgfbv36/27dure/fu\n2rhxo3/bHj16mFFkAACAmOSsepPImzZtmh577DEtXrxYbdu2Vf/+/eVwOJSdna2srCwZhqFJkyYp\nISFBmZmZmjZtmjIzMxUXF6fc3FwzigwAABCTohYGW7Zsqby8PElSmzZt9PLLL5fbZsSIERoxYkSZ\ndUlJSXrmmWeiUkYAAACrYdJpAAAACyMMAgAAWBhhEAAAwMIIgwAAABZGGAQAALAwwiAAAICFEQYB\nAAAsjDAIAABgYYRB1Lo7Jr+hOya/YXYxAABABQiDAAAAFkYYBIB6hpZ2AJFEGESdQFcyAADmIAwC\nYSK4AgBiCWEQAADAwgiDQAygtRIAUF2EQQAAAAsjDAIAAFgYYRAAAMDCTA2Dd955p7Kzs5Wdna0Z\nM2bo4MGDyszMVFZWlmbPni2fzydJysvL09ChQzVixAh98MEHUSlbLIy/MnMcWSzUX02FWweM+wOA\nusUq52SnWTsuKiqSYRhauXKlf92vfvUrTZw4Uddff71mzZql999/X127dtXKlSv12muvqaioSFlZ\nWerdu7fi4+PNKjoAAKhFd0x+Q3/OHWx2MSzDtJbB/Px8nT17Vjk5ORozZox27typvXv3qlevXpKk\nvn37auvWrdq9e7e6deum+Ph4ud1upaenKz8/36xiIwbRImedX79Afca5CrXFtDCYmJiosWPHasWK\nFZo7d66mTJkiwzBks9kkScnJySooKJDX65Xb7fY/Lzk5WV6vN2Ll4IsFmCuU72C0v6ecFwBYiWlh\nsE2bNho0aJBsNpvatGmj1NRUnTx50v/3wsJCpaSkyOVyqbCwsMz6wHCI2MOv39jA5xgd1DGAmjIt\n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\nmHQaAADAwgiDAAAAFkYYBAAAsDDCIAAAgIURBgEAACyMMAgAF5k+fbr++Mc/Bv37jBkzdOTIkSiW\nCABqD2EQAMK0ffv2OnNnBACoKeYZBGB5hmFo0aJF2rBhg5o2baqSkhINGzZMBw8e1LZt23T69Gk1\natRIS5Ys0euvv65nnnlG6enpeuWVV/T1119r4cKFOnfunBo1aqS5c+eqVatWZr8lAAgZLYMALO/t\nt9/Wvn379Je//EVPP/20Dh06pJKSEv3f//2fVq9erbffflvp6en685//rPvuu09NmzbVCy+8oOTk\nZD366KPKzc3V66+/rnvuuUePPfaY2W8HAMJS/+90D6BOOXz4sPr166f27dtL+vEm7GPGjNGQIUOq\nfP7gwYO1cuVKvffee3r77bf1/PPPh7Tf7du369577/XfZ9wwDDkcDt1///269dZbK33uzJkzNXLk\nSMXFxSktLU19+/aVw+HQ8ePHdeONN8put6ugoECbNm3SwYMH/feIfvfdd/Xll19q3Lhx/tfyer1l\nXnv37t1at26dHn/88XL7/fTTT7V8+XI988wzmj59uq688kqNHTs2pPdbKicnR0899ZTS0tJ07733\natq0abriiivCeg0A1kYYBBBxiYmJeuONN/yPjxw5orvvvltJSUnq379/pc8NfF640tPTyzw/Pz9f\nmZmZev/996u8WXvgiBmn06nvvvtO+fn5GjRokH7+85/r3XffVXx8vP71r3/pX//6lySpXbt2ateu\nnX+fJSUlOnHiRJnX/fLLL3X8+PEK93nNNdeUuaF9dZTe4F6Sli9fXqPXAmBNdBMDqHWXXXaZHnjg\nAa1YsUKSdODAAd1zzz0aOXKkbrnlFo0bN05FRUWSpA4dOujUqVP+5x49elTdunVTQUGBpB9CW//+\n/ZWfn1/lfq+66iolJibqyJEjWrJkiaZPn66xY8fqtttuU1ZWlj+kJSQkaOvWrSouLtbp06f14Ycf\nymazKSUlRRkZGbriiiv8oWvGjBkqKirSgQMHdPLkSe3fv187duzQjh071K9fP912220aOnSo3n77\nbR07dkzPPPOMduzYoRkzZmj79u0aNGiQRo0apUGDBunDDz/UwIED/eX1eDwaMWKEBgwYoCeeeEIX\nLlyosE5KH8+YMUOS9Itf/ELHjh3Trbfeqk8//VSStGbNGg0cOFCDBg1STk6ODhw4IOmHK6Xnz5+v\n7Oxs9evXT7/85S9VWFhYjU8VQKwgDAKIiquuukpffPGFJCkvL09DhgzRmjVr9M477+jw4cPasGFD\nhc9r0aKFbrzxRq1fv16S9NFHHyk1NVVXXXVVlft85513ZLfb/d2mO3bs0NNPP6233npLKSkpWrNm\njSQpKSlJnTt31sCBAzVu3Di1a9dO586d05kzZ7Ro0SL94he/UIcOHXT48GElJiYqLS1NM2bM0KlT\np9S8eXMtWrRI//Vf/6W4uDi98cYbWrBggT766CM1b95cDzzwgHr27KmFCxdKkv7xj38oNzdX69ev\nV3x8fJny/vOf/9Qf/vAH/elPf1J+fr7y8vIqfX+lr/nSSy+pefPm/vXbtm3Tiy++qP/5n//R+vXr\nNXDgQI0fP97f+rlnzx6tWLFCb775pr755hu99dZbVdYlgNhFNzGAqLDZbEpMTJQkTZ06VVu2bNHy\n5cv11Vdf6ZtvvtGZM2eCPnf06NH6zW9+o9GjR2vNmjXKzMyscLtDhw5p8ODBkqQLFy6oWbNmWrZs\nmZKSkiRJvXr1ksvlkiR16tRJp0+f9j83KyvLH65Kbd26VaNHj9Ztt91WZn2LFi10//33KykpSUlJ\nSVq3bp1Wr16t3/72t3r66ad100036aGHHqqwjM2bN9dll11W4d8GDx6sBg0aSJIGDRqkjRs3Kisr\nK2i9BPPhhx9qwIAB/q7xoUOH6oknntDhw4clSX369PEH0fbt25epBwDWQxgEEBWffvqp/6KShx56\nSCUlJbr99tt1880369ixY5XO23fTTTfp7Nmz2rZtm3bs2KEnn3yywu0uHjN4sdIwKsl/kUm4zp49\nq/379+vKK6/0hytJGjVqlG655RZt2bJFH374oZYuXepvzQxUGvYq4nA4yjx2OsufoouLi6ssY0Xv\nyzAMf7dzJOoBQOygmxhArTtw4ICWLVumnJwcSdLmzZs1fvx4DRgwQDabTbt27VJJSUnQ59tsNmVl\nZemRRx7RwIEDlZCQEK2il3Hu3DktWLBAffv2Lde6N2rUKH322WcaOnSo5s2bp++//16nT5+Ww+Hw\nh7Cq/PWvf1VxcbGKior0xz/+UX379pUkpaWl+ccCvvvuu2WeU9HrZ2Rk6M033/SPM3zttdeUmpqq\n1q1bV+t9A4httAwCiLhz5875u2vtdrsSEhL00EMP6eabb5YkTZo0SePHj1fDhg2VlJSk6667TocO\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x15943198cf8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2018-07-14 14:54:56.813877\t计算回测结果\n",
      "2018-07-14 14:54:56.949738\t------------------------------\n",
      "2018-07-14 14:54:56.949738\t第一笔交易：\t2018-01-01 19:11:00\n",
      "2018-07-14 14:54:56.949738\t最后一笔交易：\t2018-06-30 23:59:00\n",
      "2018-07-14 14:54:56.949738\t总交易次数：\t211\n",
      "2018-07-14 14:54:56.949738\t总盈亏：\t13,215.7\n",
      "2018-07-14 14:54:56.949738\t最大回撤: \t-2,178.11\n",
      "2018-07-14 14:54:56.949738\t平均每笔盈利：\t62.63\n",
      "2018-07-14 14:54:56.949738\t平均每笔滑点：\t0.4\n",
      "2018-07-14 14:54:56.949738\t平均每笔佣金：\t18.23\n",
      "2018-07-14 14:54:56.949738\t胜率\t\t40.28%\n",
      "2018-07-14 14:54:56.949738\t盈利交易平均值\t405.23\n",
      "2018-07-14 14:54:56.949738\t亏损交易平均值\t-168.48\n",
      "2018-07-14 14:54:56.949738\t盈亏比：\t2.41\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nLhd9BZKk3r1767777pMkWZalqKgoXlsqICH2IpfLdeSrcEmKiopScXGxjREh0DRs2FC333675syZ\nowAg1/0AACAASURBVMcff1wPPvigLMtSRESEJMnhcCg/P9/mKGG3Xr16KTq6vKKtqj7icrkUHx9/\npI3D4ZDL5fJ7rLDX0X2lQ4cOeuihhzRv3jy1bNlSzz//PH0FkszfPS4uTi6XS/fee69GjhzJa0sF\nJMReFBcXJ7fbfeR6aWlppRcqoHXr1rr66qsVERGh1q1bq3Hjxtq/f/+R37vdbiUkJNgYIQJRxZry\nsj5y9OuN2+2u9CaG8HTFFVeoffv2R35ev349fQVH7N27VzfddJP69++vq666iteWCkiIvahz585a\ntGiRJGn16tVKSkqyOSIEmldffVVPPvmkJOn777+Xy+XSJZdcouXLl0uSFi1apJSUFDtDRABq167d\nMX2kQ4cOcjqdOnz4sPLz87V161Zec6Dbb79da9eulSQtW7ZM5557Ln0FkqQff/xRt912m0aPHq1B\ngwZJ4rWlogjLsiy7gwgVZatMbN68WZZl6YknntBZZ51ld1gIIIWFhXr44Ye1Z88eRURE6MEHH1ST\nJk00YcIEFRUVqU2bNsrIyFBUVJTdocJmu3bt0v3336/c3Fxt27atyj6Sm5urBQsWyLIsDR06VL16\n9bI7bNigYl9Zt26dJk2apJiYGJ188smaNGmS4uLi6CtQRkaG3n//fbVp0+bIsUceeUQZGRm8toiE\nGAAAAGGOkgkAAACENRJiAAAAhDUSYgAAAIQ1EmIAAACENRJiAAAAhDUSYgAAAIQ1EmIAAACENRJi\nAAAAhDUSYgAAAIQ1EmIAAACENRJiAAAAhDUSYgAAAIQ1EmIAAACENRJiAAAAhLVouwOordLSUj32\n2GPatGmTYmNjlZGRoVatWtkdFgAAAIJU0I0Qf/zxxyosLNSCBQv0wAMP6Mknn7Q7JAAAAASxoEuI\nnU6nunXrJknq2LGjvv76a5sjAgAAQDALupIJl8uluLi4I9ejoqJUXFys6OjjPxSn0+mP0AAAABDA\nkpOTqzwedAlxXFyc3G73keulpaXVJsNljvcE+ErE4xGSJGuideTniqyJVpVtq7uv493ek7ZVxXO8\n2Gq6nSePoza3q42anqva3kddHr8nf7uabnc0p9Op5OTkOsdT37+jr87hyfNWm+fKG/9XvNmPK97e\nrufYrnMEcmz1OUdF9e27nrwe16ZtoD1XgRZbTX+nYHkcgXAOf8Xmb9UNkAZdyUTnzp21aNEiSdLq\n1auVlJRkc0QAgFBkTbRsedMG4H9BN0J8xRVXaMmSJRo8eLAsy9ITTzxhd0gAAkRNI26AXUisgcAW\ndAlxZGSk/vznP9sdBgAAAEJE0JVMAAAAAN4UdCPEoYiv0hDO6P8IN/R5IPCQEAMBpOyNkvpXIDCR\nzAKhiYQYqAfeHAEACH4kxABCUl0/rPAhBwDCDwkxggrJSnjj749gQn8FggcJcRBgbVUA9UFiBgDV\nY9k1AAAAhDVGiAEgRDAS7F8830DoYIQYAAAAYY0RYgDAEYx6AghHJMSAj5FgeI7nynt4LgHAcyTE\nCDskCgC8jdeVwMLfA7VFDTEAAAhZ1kSLBBk1YoTYR6yJlpxOp91hAAAAoAYkxPAbPqEDAIBAREIM\nAPA5PhADCGTUEAMAACCskRADAAAgrFEyAfgAXw8DABA8GCEGAABAWGOEGAAAm1X8Vini8QgbIwHC\nEyPEAOABFvcHgNBFQgwAAICwRskEEKQYrQQAwDtIiIEQUJYcU3uIQMKHNgDBgoQYAADUCx9+EOyo\nIQYAAEBYIyEGAABAWCMhBgBUiaXmAIQLaogB+B1JFuA/dZ10G2qTddn8BNUhIQ4yJBIAAADeRUIM\nAPAqPrgDCDYkxAAQRkLta3DUDR9agMpIiOFzvPAikJAQAgCORkIMAABs5e8JbwzU4GgsuwYAAICw\nxggxAACwBSO1CBQkxABqhbU8ww9/c/8iSQT8j5IJAADgNexwiGDECDEAwK9IlgILfw+AhBgAgLAQ\nKIlvoMQBVERCDABhiLpgAChHDTEAAADCGiPEABDE+PoZAOqPhBi1xhswAAAIJZRMAAAAIKwxQgwA\nYa423/owGQ9AKLI9If5/9u4+SKryzhf4t+VFDTMsel1TGgO+rPG1EBlKNxVEo2tIXE18Q9RcvIkm\nvlQkmihiiAIGRL1Gd41vWVNurqu7UdBbqZi9iRvdIIv4ErsWveBq3KzB16sxrldmoqLMuX94mQAO\nMAM9091zPp8qy+nTp8/zO+c5p+fLM0+fLooiEyZMyK677pokGTNmTC644IIsXbo0l19+eQYNGpTx\n48fn3HPPTZLccMMNWbhwYQYPHpwZM2Zk9OjRdaweaFam/gCwRt0D8fPPP5/99tsv3//+99dZPmvW\nrFx//fX5+Mc/njPPPDNPPfVUiqLIY489lgULFuSVV17J1KlTc88999SpcgAABoK6B+Lly5fn1Vdf\nzZQpU7LNNtvkW9/6VnbcccesWrUqI0eOTJKMHz8+S5YsydChQzN+/PhUKpXsvPPOWb16dd54441s\nv/32m2ynWq329a70qt3+rGfttjb0c3+8rlk8fvTjSTZ//zdXXx3XWvd5d9vY3Nc1i1r2TX9fj/2h\nFvU02jFuNP39Htwf70e9Wbcn7W3uvm7qPb83tfVm3UZuoxFq62/9GogXLFiQ2267bZ1lM2fOzJln\nnpnPfe5zefzxxzNt2rTceOONaWlp6Vpn2LBheeGFF7L11ltnxIgR6yxfuXJljwJxW1tb7Xakh6rV\n6gft/rQf69lQWz/d+M/d2ejrNtJ2j9ZtFJvqm37ap65zZVN19bAPNvq6ze3z7truybrNci50ZyP7\nvLZaH+Nev65ealHPFu5/b9bt0esaTS3Olc1tb71lvW5jc3/39eJ9pdfb3oy2u1PPa74/2ui32vrZ\nxkJ4vwbiSZMmZdKkSesse/vttzNo0KAkybhx4/Laa69l2LBh6ejo6Fqno6Mjw4cPz5AhQz60vLW1\ntX+Kh340kD64ZK4uAI2u7rddu+GGG7pGjZ9++unstNNOaW1tzZAhQ/L888+nKIosXrw448aNy9ix\nY7N48eJ0dnbm5ZdfTmdnZ49Gh2FDilmFwAabyfVDX3BeUQ91n0N85plnZtq0aXnwwQczaNCgXHHF\nFUmSyy67LBdeeGFWr16d8ePH54ADDkjywSjy5MmT09nZmZkzZ9azdNbjDQwAaEZ1D8R/8id/kltu\nueVDy8eMGZP58+d/aPnUqVMzderU/igNAIASqPuUCQAAqKe6jxADAI3B1DfKSiAeYAbS3QkAAPqD\nQAxA3RiRHLgM0NBMBGLooUb4xd0INQDAQONDdQAAlJoRYnrM6CTQl9a8x/jzOmv4vUN/MUIMAECp\nGSEGABqe0WL6kkAMwIC2dpAyLaM+hFkanUAM8WZN95wX4PZplIM5xAAAlJoRYvqEkTUAoFkYIQYA\noNQEYgAASs2UCQCalg98AbVghBgAgFIzQgzAgODDvMDmMkIMAECpGSHuR0YvAAAaj0AMABADV2Um\nEAMAPSIwMlCZQwwAQKkZIQagobi3MNDfBGJocP5ECQB9SyAGakJwB6BZCcQAQFPyD3FqRSDuBy5Y\nAKgdv1epNYEYoBd84Ks5CExAb7jtGgAApSYQAwBQaqZMAJvNn6UBGAgEYgBoUJv7j85iVpFqtVrj\nasplzbH3WYFyEIhhI4yAQn25BoH+IBADsMUEV6CZ+VAdAAClZoQYqDmjhTDwuc4ZSARiGEB8aQQA\n9J4pEwAAlJpADABAqZkyAQBNwJxd6DtGiAEAKDWBGACAUhOIAQAoNYEYAIBSE4gBACg1gRgAgFKr\nSyD+xS9+kQsuuKDr8dKlSzNp0qScfPLJueGGG7qW33DDDTnxxBNz8skn58knn0ySvPHGGzn99NNz\n6qmn5vzzz8/bb7/d7/UDAPSnYlbh1nt9qN/vQzx37twsXrw4++yzT9eyWbNm5frrr8/HP/7xnHnm\nmXnqqadSFEUee+yxLFiwIK+88kqmTp2ae+65JzfddFOOPvroHH/88bnlllty11135Utf+lJ/7wYA\nQL8TivtGv48Qjx07NrNnz+563N7enlWrVmXkyJGpVCoZP358lixZkmq1mvHjx6dSqWTnnXfO6tWr\n88Ybb6RareaQQw5JkkyYMCFLlizp710AoM62dLRszeuFCyDpwxHiBQsW5Lbbbltn2bx583LUUUfl\n0Ucf7VrW3t6elpaWrsfDhg3LCy+8kK233jojRoxYZ/nKlSvT3t6e1tbWdZb1RLVa3ZLd2Wz1andD\nNWzo5968jr7RV8e4Fn3uXNi4Wh/jWr5uIOqPa6WZlf386A/1vOabrbZmee/qs0A8adKkTJo0aZPr\ntbS0pKOjo+txR0dHhg8fniFDhnxoeWtra9f622yzTde6PdHW1tb7ndhC1Wq1Lu12+ekH/2tra9vk\nz9350Lr0mT45V2rR5xv6mQ/00THu9evKoq/2uQmPZdH24ZHtymWVJH/cj7r/Dhoourku+/KaX+ev\nFr05Nxvg/ajXbfSzjYXwut9loqWlJUOGDMnzzz+foiiyePHijBs3LmPHjs3ixYvT2dmZl19+OZ2d\nndl+++0zduzYPPjgg0mSRYsWudgB2CIDZerEQNkPqId+/1Bddy677LJceOGFWb16dcaPH58DDjgg\nSTJu3LhMnjw5nZ2dmTlzZpLknHPOyfTp0zN//vxst912ueaaa+pZOgAATa4ugfjggw/OwQcf3PV4\nzJgxmT9//ofWmzp1aqZOnbrOsh122CG33nprn9cIANAs/HVgy9R9ygQAANSTQAwAQKk1xBxiANgU\nfxIG+opADABAv2jUf9iaMgEAQKn1aIT417/+df7jP/4j22yzTfbYY498/OMf7+u6AABKrVFHUwei\njQbi3//+9/n617+eZ599NqNGjUqlUslzzz2XMWPG5Jprrunxt8QBADSjtUPpmm8DZODZ6JSJOXPm\npK2tLQ899FAWLFiQ+fPn56GHHsree++defPm9VeNAADQZzYaiJ955pl885vfzJAhQ7qWDR06NN/8\n5jfz1FNP9XlxAADQ1zY6ZWLrrbfudnmlUslWW/k8XrMyJwkA4I82GogrlQ3PldnYcwD0Lf+wBaid\njQbiZ599NkccccSHlhdFkd/97nd9VhQAAPSXjQbi++67L0nS3t6ef/mXf8m2226bCRMmmC4BAMCA\nsdFAvO2222bq1Kn593//94wcOTKVSiXXXXddxowZk+9+97v9VSMAAP1ozbSsstxqbqNDvd/5znfS\n1taWxYsXd912bfHixdlrr73cdg0AgAHBbdcAACi1jQZit10DAGCg22iqdds1AAAGOrddAwDoAff/\nHrh6dNs1AAAYqDYaiD/2sY/1Vx0AAFAXPhkHAECpCcQAAJTaRqdMMHD4IADUnusKYGAwQgwAQKkZ\nIQbWYdSzfzneAPVnhBgAgFIzQgwYpQSg1ARiGKCEXADoGYEYAGAAMSDSewIxAEANrB1EK5dV6lgJ\nveVDdQAAlJpADABAqQnEJVfMKsw1AoAByu/5njGHmCTmPQEA5WWEGACAUjNCDGyQP7MBbJr3yuYn\nEAMADHCmRm6cKRMAAJSaEWIAgF4yTWJgMUIM0CDcHgmgPgRiAABKzZQJPsQIFQBQJgIxAADdKsvd\nKUyZAACg1IwQAwDUmOmHzcUIMQAApVaXEeJf/OIX+fnPf55rrrmm6/FVV12VnXbaKUkyderUHHTQ\nQbnhhhuycOHCDB48ODNmzMjo0aPzxhtv5MILL8w777yTHXfcMVdccUW23XbbeuwGQJdajgaVZc4e\nQKPo90A8d+7cLF68OPvss0/XsmXLlmXatGmZOHFi17Lly5fnsccey4IFC/LKK69k6tSpueeee3LT\nTTfl6KOPzvHHH59bbrkld911V770pS/1924AADBA9PuUibFjx2b27NnrLFu+fHnuueeenHrqqbny\nyivz/vvvp1qtZvz48alUKtl5552zevXqvPHGG6lWqznkkEOSJBMmTMiSJUv6exeahpv8Q/NzHQP0\n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\ncvbZZ+fiiy9OpVLJnnvumVmzZmWrrfx7tcyeeOKJfPe7383tt9+eFStWdHt+zJ8/P3feeWcGDx6c\nc845J5/+9KfrXTZ1sPa58tRTT+Wss87KrrvumiQ55ZRTctRRRzlXSu69997LjBkz8tJLL2XVqlU5\n55xz8md/9mfeV9ZWUHP33XdfMX369KIoiuJf//Vfi7PPPrvOFdFI3nnnneILX/jCOsvOOuus4pFH\nHimKoiguvfTS4p/+6Z/qURoN4pZbbimOPvroYtKkSUVRdH9+vPbaa8XRRx9dvPvuu8Vbb73V9TPl\nsv65Mn/+/OLWW29dZx3nCnfffXcxd+7coiiK4j//8z+LQw891PvKegxB9YFqtZpDDjkkSTJmzJgs\nW7aszhXRSJ5++um8/fbbOf3003Paaadl6dKlWb58eQ466KAkyYQJE7JkyZI6V0k9jRw5Mtdff33X\n4+7OjyeffDIHHnhghg4dmtbW1owcOTJPP/10vUqmTtY/V5YtW5aFCxfmi1/8YmbMmJH29nbnCvns\nZz+b8847L0lSFEUGDRrkfWU9AnEfaG9v7/pzeJIMGjQo77//fh0ropFss802OeOMM3Lrrbfmsssu\ny4UXXpiiKFKpVJIkw4YNy8qVK+tcJfU0ceLEDB78xxlt3Z0f7e3taW1t7Vpn2LBhaW9v7/daqa/1\nz5XRo0fnoosuyt///d/n4x//eG688UbnChk2bFhaWlrS3t6er3/96zn//PO9r6xHIO4DLS0t6ejo\n6Hrc2dm5zhsW5bbbbrvl85//fCqVSnbbbbeMGDEiv//977ue7+joyPDhw+tYIY1m7fnka86P9d9n\nOjo61vlFRjkdeeSR2X///bt+fuqpp5wrJEleeeWVnHbaafnCF76QY445xvvKegTiPjB27NgsWrQo\nSbJ06dJ84hOfqHNFNJK77747V155ZZLk1VdfTXt7ez71qU/l0UcfTZIsWrQo48aNq2eJNJh99933\nQ+fH6NGjU61W8+6772blypX5zW9+472GnHHGGXnyySeTJA8//HD2228/5wp5/fXXc/rpp2fatGk5\n8cQTk3hfWV+lKIqi3kUMNGvuMvHrX/86RVFk3rx52WOPPepdFg1i1apV+da3vpWXX345lUolF154\nYbbbbrtceumlee+997L77rtn7ty5GTRoUL1LpY5efPHFfPOb38z8+fPz3HPPdXt+zJ8/P3fddVeK\noshZZ52ViRMn1rts6mDtc2X58uWZM2dOhgwZkh122CFz5sxJS0uLc6Xk5s6dm5/97GfZfffdu5Z9\n+9vfzty5c72v/H8CMQAApWbKBAAApSYQAwBQagIxAAClJhADAFBqAjEAAKUmEAMAUGoCMQAApSYQ\nAwBQagIxAAClJhADAFBqAjEAAKUmEAMAUGoCMQAApSYQAwBQagIxAAClJhADAFBqAjEAAKU2uN4F\n9IdqtVrvEgAAqLO2trZul5ciECcbPgBrq1arPVqPxqYfm58+HBj048CgH5ufPvzAxgZITZkAAKDU\nBGIAAEpNIAYAoNQEYgAASk0gBgCg1ARiAABKTSAGAKDUGvo+xKtXr84ll1yS5557LpVKJZdddlm2\n3nrrXHzxxalUKtlzzz0za9asbLWVXA8AwOZp6ED8y1/+Mkly55135tFHH81f/dVfpSiKnH/++Tn4\n4IMzc+bMPPDAAznyyCPrXCkAAM2qoYdW/+Iv/iJz5sxJkrz88ssZPnx4li9fnoMOOihJMmHChCxZ\nsqSeJQIA0OQaeoQ4SQYPHpzp06fnF7/4Rb73ve/loYceSqVSSZIMGzYsK1eu7NF2NvZ1fZuzHo1N\nP/afcT28Btd4vLW1R+vpw4FBPw4M+rH56cONa/hAnCRXXXVVLrzwwpx00kl59913u5Z3dHRk+PDh\nPdpGT77D23d9Dwz6sZ8tXNir1V2L5aEfBwb92Pz04Qc29o+Chp4y8eMf/zh/8zd/kyTZdtttU6lU\nsv/+++fRRx9NkixatCjjxo2rZ4kAADS5hh4h/sxnPpNvfetb+eIXv5j3338/M2bMyB577JFLL700\n1157bXbfffdMnDix3mUCANDEGjoQf+QjH8l11133oeV33HFHHaoBAGAgaugpEwAA0NcEYgAASk0g\nBgCg1ARiAABKTSAGAKDUBGIAAEpNIAYAoNQEYgAASk0gBgCg1ARiAABKTSAGAKDUBGIAAEpNIAYA\noNQEYgAASk0gBgCg1ARiAABKTSAGAKDUBGIAAEpNIAYAoNQEYgAASk0gBgCg1ARiAABKTSAGAKDU\nBGIAAEpNIAYAoNQEYgAASk0gBgCg1AbXuwCgXCoLF/Zsxf+/XnHYYX1VCgAkMUIMAEDJCcQAAJSa\nQAwAQKkJxAAAlFpDf6juvffey4wZM/LSSy9l1apVOeecc7LTTjvlrLPOyq677pokOeWUU3LUUUfV\nt1AAAJpWQwfin/zkJxkxYkSuvvrqvPnmmzn22GPzta99LV/+8pdz+umn17s8AAAGgIYOxJ/9JbeR\n0wAAIABJREFU7GczceLEJElRFBk0aFCWLVuW5557Lg888EBGjRqVGTNmpKWlpc6VAgDQrCpFURT1\nLmJT2tvbc8455+Skk07KqlWrstdee2X//ffPzTffnLfeeivTp0/f6Our1Wo/VQrlM27lyj7d/uOt\nrX26fQDKo62trdvlDT1CnCSvvPJKvva1r+XUU0/NMccck7feeivDhw9Pkhx55JGZM2dOj7azoQOw\ntmq12qP1aGz6sZ/19Is2NpO+bF6uxYFBPzY/ffiBjQ2QNvRdJl5//fWcfvrpmTZtWk488cQkyRln\nnJEnn3wySfLwww9nv/32q2eJAAA0uYYeIf7+97+ft956KzfddFNuuummJMnFF1+cefPmZciQIdlh\nhx16PEIMAADdaehAfMkll+SSSy750PI777yzDtUAADAQNfSUCQAA6GsCMQAApSYQAwBQagIxAACl\nJhADAFBqAjEAAKUmEAMAUGoCMQAApSYQAwBQagIxAAClJhADAFBqAjEAAKUmEAMAUGoCMQAApSYQ\nAwBQagIxAAClJhADAFBqAjEAAKUmEAMAUGoCMQAApSYQAwBQagIxAAClJhADAFBqAjEAAKUmEAMA\nUGoCMQAApSYQAwBQagIxAAClJhADAFBqAjEAAKUmEAMAUGoCMQAApTa43gVszHvvvZcZM2bkpZde\nyqpVq3LOOefkz/7sz3LxxRenUqlkzz33zKxZs7LVVnI9AACbp6ED8U9+8pOMGDEiV199dd58880c\ne+yx2XvvvXP++efn4IMPzsyZM/PAAw/kyCOPrHepAAA0qYYeWv3sZz+b8847L0lSFEUGDRqU5cuX\n56CDDkqSTJgwIUuWLKlniQAANLmGHiEeNmxYkqS9vT1f//rXc/755+eqq65KpVLpen7lypU92la1\nWq3pejQ2/Thw6Mvmpv8GBv3Y/PThxjV0IE6SV155JV/72tdy6qmn5phjjsnVV1/d9VxHR0eGDx/e\no+20tbVtcp1qtdqj9Whs+rGfLVzYp5vXl83LtTgw6Mfmpw8/sLF/FDT0lInXX389p59+eqZNm5YT\nTzwxSbLvvvvm0UcfTZIsWrQo48aNq2eJAAA0uYYOxN///vfz1ltv5aabbsqUKVMyZcqUnH/++bn+\n+uszefLkvPfee5k4cWK9ywQAoIk19JSJSy65JJdccsmHlt9xxx11qAYAgIGooUeIAQCgrwnEAACU\nmkAMAECpNfQcYqA+Kn18KzUAaCRGiAEAKDWBGACAUhOIAQAoNYEYAIBSE4gBACg1gRgAgFITiAEA\nKDWBGACAUhOIAQAoNYEYAIBSE4gBACg1gRgAgFITiAEAKDWBGACAUhOIAQAoNYEYAIBSE4gBACg1\ngRgAgFITiAEAKDWBGACAUhOIAQAotcF93cDee++dSqWSJCmKYp3nKpVK/u3f/q2vSwAAgA3q80D8\n9NNP93UTAACw2fo8EK/x1ltv5d57782bb765zkjxueee218lAADAh/RbID7vvPPS2tqaPffcs2sK\nBQAA1Fu/BeLXX389P/zhD/urOQAA6JF+u8vEPvvsYz4xAAANp99GiJ999tkcf/zx2X777bP11lt3\nLX/ggQf6qwQAAPiQfgvE1157bR588ME88sgjGTRoUA499NB88pOf7K/mAQCgW/02ZeL73/9+li5d\nmpNOOinHHXdc/uVf/iV/93d/t8nXPfHEE5kyZUqS5KmnnsohhxySKVOmZMqUKflf/+t/9XXZAAAM\ncP02QvzEE0/k5z//edfjww8/PEcfffRGX/ODH/wgP/nJT7LtttsmSZYvX54vf/nLOf300/u0VgAA\nyqPfAvFOO+2UFStWZNSoUUk+uOvERz/60Y2+ZuTIkbn++utz0UUXJUmWLVuW5557Lg888EBGjRqV\nGTNmpKWlpUftV6vVmq5HY9OP6xq3cmW9S9hs+rK56b+BQT82P324cf0WiN9///184QtfyLhx4zJ4\n8OBUq9X86Z/+aU477bQk6Xb6xMSJE/Piiy92PR49enQmTZqU/fffPzfffHNuvPHGTJ8+vUftt7W1\nbXKdarXao/VobPqxGwsX1ruCzaYvm5drcWDQj81PH35gY/8o6LdAPHXq1HUeb860hyOPPDLDhw/v\n+nnOnDk1qQ0AgPLqt0B80EEHbfE2zjjjjFx66aUZPXp0Hn744ey33341qAwAgDLrt0BcC7Nnz86c\nOXMyZMiQ7LDDDkaIAQDYYg0fiHfZZZfMnz8/SbLffvvlzjvvrHNFAAAMJP12H2IAAGhEAjEAAKUm\nEAMAUGoCMQAApSYQAwBQagIxAAClJhADAFBqAjEAAKUmEAMAUGoCMQAApSYQAwBQagIxAAClJhAD\n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\noij+5m/+pvjhD39Yj92gKIrf/va3xVlnnfWh5b3pTxrLfffdV0yfPr0oiqL413/91+Lss8+uc0Vs\nzDvvvFN84QtfWGfZWWedVTzyyCNFURTFpZdeWvzTP/1T8dprrxVHH3108e677xZvvfVW18/Uzy23\n3FIcffTRxaRJk4qi6F2//e3f/m3xve99ryiKovjpT39azJkzp277UXbr9+P8+fOLW2+9dZ119GPP\nlG7KxNixYzN79uyux+3t7Vm1alVGjhyZSqWS8ePHZ8mSJalWqxk/fnwqlUp23nnnrF69Om+88cY6\nXx09YcKELFmypE57wvLly/Pqq69mypQp+epXv5r/+I//6HV/0lh8NXtzefrpp/P222/n9NNPz2mn\nnZalS5dm+fLlOeigg5L88T3yySefzIEHHpihQ4emtbU1I0eOzNNPP13n6stt5MiRuf7667se96bf\n1v89+PDDD9dlH/hwPy5btiwLFy7MF7/4xcyYMSPt7e36sYcG7JSJBQsW5Lbbbltn2bx583LUUUfl\n0Ucf7VrW3t7e9ee+JBk2bFheeOGFbL311hkxYsQ6y1euXJn29va0traus4y+111/zpw5M2eeeWY+\n97nP5fHHH8+0adNy44039qo/S/3noQa0/vU4aNCgvP/++5v8NkrqY5tttskZZ5yRSZMm5be//W2+\n+tWvpiiKVCqVJN2/b65Z3t7eXq+ySTJx4sS8+OKLXY97029+DzaO9ftx9OjRmTRpUvbff//cfPPN\nufHGG7P33nvrxx4YsL9lJk2alEmTJm1yvfW/CrqjoyPDhw/PkCFDPrS8tbW1a/1tttmma136Xnf9\n+fbbb2fQoEFJknHjxuW1117LsGHDetWfNJbN+Wp26me33XbLqFGjUqlUsttuu2XEiBFZvnx51/Nr\nrr/u3mddf41lq63++AfjTfXb2sv9HmwsRx55ZFd/HHnkkZkzZ07GjRunH3ugdFMm1tfS0pIhQ4bk\n+eefT1EUWbx4ccaNG5exY8dm8eLF6ezszMsvv5zOzs5sv/32GTt2bB588MEkyaJFi9LW1lbnPSiv\nG264oWvU+Omnn85OO+2U1tbWXvUnjcVXszeXu+++O1deeWWS5NVXX017e3s+9alPdf0VbtGiRRk3\nblxGjx6darWad999NytXrsxvfvMbfdtg9t133x73m9+DjeuMM87Ik08+mSR5+OGHs99+++nHHjL0\nkuSyyy7LhRdemNWrV2f8+PE54IADknww6jh58uR0dnZm5syZSZJzzjkn06dPz/z587Pddtt13amC\n/nfmmWdm2rRpefDBBzNo0KBcccUVSXrXnzSWI488Mg899FBOPvnkrq9mp3GdeOKJ+da3vpVTTjkl\nlUol8+bNy3bbbZdLL7001157bXbfffdMnDgxgwYNypQpU3LqqaemKIp84xvfyNZbb13v8lnL9OnT\ne9xvp5xySqZPn55TTjklQ4YM8XuwgcyePTtz5szJkCFDssMOO2TOnDlpaWnRjz3gq5sBACi10k+Z\nAACg3ARiAABKTSAGAKDUBGIAAEpNIAYAoNQEYgAASk0gBgCg1ARiAABKTSAGAKDUBGIAAEpNIAYA\noNQEYgAASk0gBgCg1ARiAABKTSAGAKDUBGIAAEptcL0L6A/VarXeJQAAUGdtbW3dLi9FIE42fAD6\nSrVa7fc266Us+1qW/Uzs60BVln0ty34m9nWgKtO+9qeNDZCaMgEAQKkJxAAAlJpADABAqQnEAACU\nmkAMAECpCcQAAJSaQAwAQKkJxAAAlJpADABAqQnEAACUmkAMAECpCcQAAJSaQAwAQKkJxAAAlJpA\nDABAqQnEAACUmkAMAECpNWwgfuKJJzJlypQPLf/nf/7nnHDCCZk8eXLmz59fh8oAABhIGjIQ/+AH\nP8gll1ySd999d53l7733Xq644or87d/+bW6//fbcddddef311+tU5YZNmzYtxxxzTKZNm7bB53fd\nddfsuuuu66yzZnlvX9fdOr19vrvlPWlvc/WmvU3t06a225P2KpXKJo/bMccc0yd91tN9Wr/OWh7D\n3r5uS9vuq3U3Zxubc61ubnubel1Pnm/041mr82xLjn1vrtVmP5493dcyX+PN2N7670uNvH/dbau3\nr2sElaIoinoXsb777rsve+21Vy666KJ1RoGffvrpXH311bn11luTJPPmzcuBBx6Yz33ucxvdXrVa\n7dN613fMMcfklVdeyU477ZR777232+dfe+21JMmOO+7Ytc7mvq63bXf3fHfLe9Le5upNe5vap1rs\n3+rVq5OkLn22KRuqM0nNjmFvX7el/ddX69ZqG5s6LuuvsznXTn9cq81yPGt5DBv5XG7E49kIx6WR\na9Ne3/4uqYe2trZulw/u5zp6ZOLEiXnxxRc/tLy9vT2tra1dj4cNG5b29vYebXNDB6AvDB06tOv/\n3bU7dOjQ7LLLLh+qbXNf19u2u3u+u+U9aS/54B8cvT2+vWlvU/u0qe32pL0VK1ZstI2hQ4dmxx13\n7NpOLftsUzZU59rPb+kxXP91a15bi/OlP9et1TY2dFx6ek01yrW6/rrVarUhj2ctj2Fvr9VmPz97\nuq/9XWdfrLvmd02z9dlAb29tm/u6/rKxAdKGnDKxIS0tLeno6Oh63NHRsU5ABgCA3mqqQLzHHntk\nxYoVefPNN7Nq1ao8/vjjOfDAA+tdFgAATawhp0ys7957780f/vCHTJ48ORdffHHOOOOMFEWRE044\nIR/96EfrXR4AAE2sYQPxLrvs0vWBumOOOaZr+eGHH57DDz+8XmUBADDANNWUCQAAqDWBGACAUhOI\nAQAoNYEYAIBSE4gBACg1gRgAgFITiAEAKDWBGACAUhOIAQAoNYEYAIBSE4gBACg1gRgAgFITiAEA\nKDWBGACAUhOIAQAoNYEYAIBSE4gBACg1gRgAgFITiAEAKDWBGACAUhOIAQAoNYEYAIBSE4gBACg1\ngRgAgFITiAEAKDWBGACAUhOIAQAoNYEYAIBSE4gBACg1gRgAgFITiAEAKDWBGACAUhOIAQAoNYEY\nAIBSE4gBACg1gRgAgFITiAEAKDWBGACAUhOIAQAoNYEYAIBSE4gBACg1gRgAgFITiAEAKDWBGACA\nUhtc7wLW19nZmdmzZ+eZZ57J0KFDM3fu3IwaNarr+f/xP/5HFixYkO233z5Jctlll2X33XevV7kA\nADS5hgvE999/f1atWpW77rorS5cuzZVXXpmbb7656/lly5blqquuyv7771/HKgEAGCgaLhBXq9Uc\ncsghSZIxY8Zk2bJl6zy/fPny3HLLLfnd736Xww47LGeddVY9ygQAYIBouEDc3t6elpaWrseDBg3K\n+++/n8GDPyj1L//yL3PqqaempaUl5557bn75y1/m05/+9Ca3W61W+6zm9a1atarr/921u+b5Ndas\ns7mv25y213++u+U9aa8nz3WnN+1tap82td2etrexNtZ+fW9q680x3JAN1dldzbU6t9a8thbnS3+u\nW6ttrL+t9V/X3Tq9vXb641ptluNZy2PY22t1IBzPnuxrf9fZV+tu6H2pkftsoLe3ts19XSNouEDc\n0tKSjo6OrsednZ1dYbgoivy3//bf0tramiQ59NBD89RTT/UoELe1tfVNwd0YOnRo1/+7a3fN82us\nWWdzX7c5ba//fHfLe9Je8sEJ39vj25v2NrVPm9puT9vbWBtDhw7NqlWrul5Tyz7blA3V2V3NtTq3\n1ry2FudLf65bq22sv631X9fdOr29dvrjWl1/3Wq12pDHs5bHsLfXarOfnz3d1/6usy/WXfO7ptn6\nbKC3t7bNfV1/2VgYb7i7TIwdOzaLFi1KkixdujSf+MQnup5rb2/P0UcfnY6OjhRFkUcffdRcYgAA\ntkjDjRAfeeSReeihh3LyySenKIrMmzcv9957b/7whz9k8uTJ+cY3vpHTTjstQ4cOzSc/+ckceuih\n9S4ZAIAm1nCBeKuttsp3vvOddZbtscceXT8fe+yxOfbYY/u7LAAABqiGmzIBAAD9SSAGAKDUBGIA\nAEpNIAYAoNQEYgAASk0gBgCg1ARiAABKTSAGAKDUBGIAAEpNIAYAoNQEYgAASk0gBgCg1ARiAABK\nTSAGAKDUBGIAAEpNIAYAoNQEYgAASk0gBgCg1ARiAABKTSAGAKDUBGIAAEpNIAYAoNQEYgAASk0g\nBgCg1ARiAABKTSAGAKDUBGIAAEpNIAYAoNQEYgAASk0gBgCg1ARiAABKbXCtNvTWW2/l3nvvzZtv\nvpmiKLqWn3vuubVqAgAAaq5mgfi8885La2tr9txzz1QqlVptFgAA+lTNAvHrr7+eH/7wh7XaHAAA\n9IuazSHeZ5998vTTT9dqcwAA0C9qNkL87LPP5rjjjst/+S//JVtvvXWKokilUskDDzxQqyYAAKDm\nahaIb7jhhlptCgAA+k3NAvHOO++cH/3oR3nkkUfy/vvv58///M/zX//rf63V5gEAoE/ULBD/9//+\n37NixYqccMIJKYoi//N//s+8+OKLmTFjRq2aAACAmqtZIH7ooYfy4x//OFtt9cHn9A477LAcc8wx\ntdo8AAD0iZrdZWL16tV5//3313k8aNCgWm0eAAD6RM1GiI855picdtpp+cu//MskyT/+4z92/QwA\nAI2qZoH47LPPzj777JNHHnkkRVHk7LPPzmGHHVarzQMAQJ/Y4ikTy5cvT5L86le/ykc+8pEcfvjh\nOeKIIzJs2LD86le/2uICAQCgL23xCPGPfvSjzJ07N9/73vc+9FylUsnf/d3fbWkTAADQZ7Y4EM+d\nOzdJcumll+YTn/jEOs8tXbq019vr7OzM7Nmz88wzz2To0KGZO3duRo0a1fX8P//zP+fGG2/M4MGD\nc8IJJ+Skk07ash0AAKDUtjgQV6vVdHZ25pJLLsnll1+eoiiSJO+//35mz56d++67r1fbu//++7Nq\n1arcddddWbp0aa688srcfPPNSZL33nsvV1xxRe6+++5su+22OeWUU3L44Ydnhx122NLdAACgpLY4\nEC9ZsiSPPfZYXnvttVx33XV/3PDgwZk8eXKvt1etVnPIIYckScaMGZNly5Z1Pfeb3/wmI0eOzJ/8\nyZ8kSdra2vKrX/0qn/vc57ZwL/rGiy++mF133TUrVqzIqFGjMmnSpCTperzm50qlklGjRuXFF1/c\nrNet/dyabaxYsSLTpk1LkixYsGCdbXTXRnev60l7a/+8po2121uwYEG36/amvU0dl1rs34b6bO1t\n7rTTTt1uY1OvW/vx2n3S3XHp7nhuqM7uat5Qe72t87rrrstHP/rRmpwv3fVfb+rs7T7V8tza3Guu\nUa7VLT32/XU8e1Pn2tfOhl7Xm2u12Y/n2vta7zqb5Rhqr/7X+KRJk3L11VenkVSKNUO6W+jHP/5x\njj322C3ezre//e185jOfyaGHHprkgy/4uP/++zN48OA8/vjjueOOO/LXf/3XSZLrrrsuO++8c1dH\nbEi1Wt3iunrjuuuuy+23356ddtopr732WlavXp3kj2/Sr7zySqZMmZIkuf3225MkgwYNyo477phX\nXnml169L/njf5zXbWP91a/+85rk1bWzsdZtqb83Pm2qvp3Vu7nHZ0v27//77P9TG+vu3dm2baq+n\nr+vp8eyuzrX3fe3j0hd1bsn5sqH+62l79aitFtdcI1yrW3rs++t4bk6djbR/A+F41qLORq5Ne411\nTu6444659957Uw9tbW3dP1Fsoe9973tFURTFxRdf3O1/vTVv3rziH//xH7seH3LIIV0//9u//Vvx\nla98pevx5ZdfXvzsZz/b5DYff/zxXtexpda0OWrUqCJJkaQYNWpU139rrHl+7WW9fV1321j7Nb1p\ne+31etJed3X25LnetLep41KL/euujfW3v3af1qJPenrMNlTnhmruzbHd0Ot22mmnLTqem+q/zd1G\nX6y7OddqrY/3+s81+7Hv7fHsTZ1rb3NDr+vNtdrsx3P987eedTbLMWyG9h5//PGm2b/NucbXX9Zf\nNpYHt3jKxH777ZckOeigg7Z0U0mSsWPH5pe//GWOOuqoLF26dJ0P6u2xxx5ZsWJF3nzzzXzkIx/J\n448/njPOOKMm7QIAUE5bHIgPP/zwJMlxxx3XNQz++OOP55lnnslxxx3X6+0deeSReegV+sCJAAAg\nAElEQVShh3LyySenKIrMmzcv9957b/7whz9k8uTJufjii3PGGWekKIqccMIJ+ehHP7qluwAAQInV\n7JvqZs2ala222ipf/OIXc8EFF+RTn/pUHnnkkVx//fW92s5WW22V73znO+ss22OPPbp+Pvzww7tC\nOAAAbKkt/qa6Nf73//7fmTlzZn72s5/lxBNPzLx58/LSSy/VavMAANAnahaIV69enc7OzjzwwAOZ\nMGFC3n777bzzzju12jwAAPSJmgXiY489NuPHj8/HPvaxHHDAATn++OM36z7EAADQn2o2h/jLX/5y\nTjvttLz99tt566238vd///fZfvvta7V5AADoEzULxC+88EK+8Y1v5IUXXkhnZ2c+9rGP5a//+q+z\n66671qoJAACouZpNmZg5c2a+8pWv5NFHH82vfvWrnHnmmbn00ktrtXkAAOgTNQvE//mf/5nPfvaz\nXY+POuqovPnmm7XaPAAA9ImaBeKhQ4dm+fLlXY+XLVuWbbfdtlabBwCAPlGzOcTf/va3M3Xq1IwY\nMSJFUeT//t//m7/6q7+q1eYBAKBPbHEgfvXVVzNnzpysWLEin/zkJ3PccceltbU1u+22W4YOHVqL\nGgEAoM9s8ZSJGTNmZPfdd8+0adPS2dmZe+65J3vttZcwDABAU6jJCPGtt96aJPnkJz+ZY489douL\nAgCA/rLFI8RDhgxZ5+e1HwMAQKOr2V0m1qhUKrXeJAAA9JktnjLx7LPP5ogjjuh6/Oqrr+aII45I\nURSpVCp54IEHtrQJAADoM1sciO+7775a1AEAAHWxxYH4Yx/7WC3qAACAuqj5HGIAAGgmAjEAAKUm\nEAMAUGoCMQAApSYQw/9r797joqzz/o+/BpGDgJzkJOeD4NkUT6ilqNmabtqWB9S1h1urdbfVtpuZ\nWve9lXXnWmruna62pm2llmZaoktWqJlnrFxR0AxR8gCpKaACyvz+8McsKCQgOV5zvZ+Ph4/HODPX\nXN/39f1e3/kwc811iYiIiKmpIBYRERERU1NBLCIiIiKmpoJYRERERExNBbGIiIiImJoKYhEREREx\nNRXEIiIiImJqKohFRERExNRUEIuIiIiIqakgFhERERFTU0EsIiIiIqamglhERERETE0FsYiIiIiY\nmgpiERERETE1FcQiIiIiYmoqiEVERETE1FQQi4iIiIipqSAWEREREVNTQSwiIiIipqaCWERERERM\nTQWxiIiIiJiaCmIRERERMTUVxCIiIiJiaiqIRURERMTUnO3dgMouXrzIxIkTOXXqFB4eHkyfPh0/\nP78qz5k2bRq7d+/Gw8MDgLlz5+Ll5WWP5oqIiIiIA7ilCuKlS5cSHx/PY489RmpqKnPnzuXZZ5+t\n8pzMzEz+8Y9/XFMoi4iIiIjUxy11yERGRga33347AHfccQdbt26t8nh5eTm5ubn893//NyNHjmTF\nihX2aKaIiIiIOBC7fUK8fPly3n777Sr3+fv72w5/8PDwoLCwsMrj58+fZ8yYMYwbN47Lly8zduxY\n2rZtS8uWLa+7voyMjIZrfC1lZGRQWlpq+3/l2xXtqbivtLS0Shvrslzl5139eF3XffVy11tfTeu4\n3mN1WV9ttsuN5quurdW9/tV9WtP6apP15zLUlKkmDdGXNT1+o+Oluv6r72v8Us+t675a+XkNtb1r\nu24jbPvq8jZkO6+3XMV6bkY+e2/Pq7MaZZ/T+hxnfVffru1y9qjLfo7dCuJhw4YxbNiwKvf94Q9/\noLi4GIDi4mKaNm1a5XF3d3fGjh2Lu7s7AN27dycrK6tWBXFiYmIDtbx2MjIySExMxMXFxXZf5dsV\n7am4z8XFpUob67Jc5edd/Xhd1331ctdbX03ruN5jdVlfbbbLjearrq3Vvf7VfVrT+mqT9ecy1JSp\nJg3Rl5UfLy0trZL5RtZRXf/V9zV+iefWZ1+t/LyG2N6VNeS+aq9tX13ehmzn9ZarWM/NyGfv7Xl1\nViPsc/Zom9HWl5GRYZh8V9+u7XI3uy6Dny/Cb6lDJjp16sTGjRsB2LRp0zUb6/Dhw6SkpHD58mXK\nysrYvXs3bdq0sUdTRURERMRB3FI/qktJSWHSpEmkpKTQuHFjXnvtNQAWLVpEREQE/fr1Y8iQIQwf\nPpzGjRszZMgQWrRoYedWi4iIiIiR3VIFsbu7O3PmzLnm/nHjxtluP/TQQzz00EM3s1kiIiIi4sBu\nqUMmRERERERuNhXEIiIiImJqKohFRERExNRUEIuIiIiIqakgFhERERFTU0EsIiIiIqamglhERERE\nTE0FsYiIiIiYmgpiERERETE1FcQiIiIiYmoqiEVERETE1FQQi4iIiIipqSAWEREREVNTQSwiIiIi\npqaCWERERERMTQWxiIiIiJiaCmIRERERMTUVxCIiIiJiaiqIRURERMTUVBCLiIiIiKmpIBYRERER\nU1NBLCIiIiKmpoJYRERERExNBbGIiIiImJoKYhERERExNRXEIiIiImJqKohFRERExNRUEIuIiIiI\nqakgFhERERFTU0EsIiIiIqamglhERERETE0FsYiIiIiYmgpiERERETE1FcQiIiIiYmoqiEVERETE\n1FQQi4iIiIipqSAWEREREVNTQSwiIiIipqaCWERERERMTQWxiIiIiJiaCmIRERERMTUVxCIiIiJi\naiqIRURERMTUVBCLiIiIiKmpIBYRERERU7slC+L169fz5z//udrHPvjgA37zm98wfPhw0tPTb3LL\nRERERMTRONu7AVebNm0amzdvplWrVtc8VlBQwDvvvMOHH35ISUkJo0aNomfPnri4uNihpXWXl5cH\nQFhY2E1drq6v0ZDrq8tyt3q+hniNm7FdGuI18vPza73czW7nzRzLjrqv1vc1bvZ2qe416ructmf9\nX8MRt6HW17Drq+tyubm5TJw4kRkzZtRpPb+kRn/5y1/+Yu9GVFZUVMTAgQPJzMzkV7/6VZXHtm3b\nRklJCf3798fV1ZWvvvqKqKgogoKCfvY1jx8/ftP/Vaz3xIkTFBQUUFRURHBwMB4eHiQnJxMREVHl\n8cr31XW5yMjIa17jxIkTnDx5Eg8Pjzqtu/JytVlfxe3K67j6dkhISK3aWd/t0hD5Kv+rKWv37t3r\ntY1q6pPqtkt127OmdtbU5vr2ZX36pL79dzPWV9vn1mdfre92u9n7qr22fUPMfbXZd2pari77qtG3\nZ+Ws9m6nUbahEdYHGCZffffxoKCg6763NfQ/gObNm1dbK1qsVqv1hirYelq+fDlvv/12lftefvll\n2rdvz/bt21m2bBmzZs2q8vjq1as5cOAAEydOBODpp59m6NCh9OjR42fXlZGRQWJiYsMGuA57rNNe\nzJLVLDlBWR2VWbKaJScoq6MyU9ab6ee2q90OmRg2bBjDhg2r0zKenp4UFxfb/l9cXIyXl1dDN01E\nRERETOSW/FFdTdq3b09GRgYlJSUUFhZy6NAh4uPj7d0sERERETGwW+5HddVZtGgRERER9OvXj9/+\n9reMGjUKq9XKk08+iaurq72bJyIiIiIGdksWxN26daNbt262/48bN852e/jw4QwfPtwezRIRERER\nB2SoQyZERERERBqaCmIRERERMTUVxCIiIiJiaiqIRURERMTUVBCLiIiIiKmpIBYRERERU1NBLCIi\nIiKmpoJYRERERExNBbGIiIiImJoKYhERERExNRXEIiIiImJqKohFRERExNRUEIuIiIiIqakgFhER\nERFTU0EsIiIiIqZmsVqtVns34peWkZFh7yaIiIiIiJ0lJiZWe78pCmIRERERkZrokAkRERERMTUV\nxCIiIiJiaiqIRURERMTUVBCLiIiIiKmpIBYRERERU1NBLCIiIiKmpoJYREREREyt0V/+8pe/2LsR\nUjelpaWsXLmSCxcuEBAQQKNGjezdpF+Msjoes+QEZXVUZslqlpygrKKC2HC+++47xo8fj4uLC99+\n+y25ublERUXRpEkTezetwSmr42U1S05QVmU1NrPkBGV11Kx1pYLYYLKysvDx8eHJJ58kPDyc7Oxs\n9u3bR5cuXezdtAanrI6X1Sw5QVmV1djMkhOU1VGz1pWOIb7FnTx5kueff561a9dy7NgxCgsL2bFj\nBwAxMTH06NGDo0eP8t1339m5pTdOWR0vq1lygrIqq7GzmiUnKKujZr1RKohvYQcPHmTSpEk0b96c\n4uJiHn/8ce666y6OHz/Oxo0bady4Mc2bN8fHx4dTp07Zu7k3RFkdL6tZcoKyKquxs5olJyiro2Zt\nCCqIb0Hl5eUAXL58mWbNmvH73/+eYcOGERgYyOLFi5k6dSqvvfYaACEhIZw8eRJ3d3d7NrnelNXx\nspolJyirsho7q1lygrI6ataGpIL4FuTkdKVbiouLCQgI4ODBgwD8z//8D4sWLaJDhw7cdtttTJs2\njd/97ncABAUF2a29N0JZHS+rWXKCsoKyGjmrWXKCsoJjZm1I+lGdnVmtVkpLS9m8eTMeHh54eHhw\n4cIFVq9eTcuWLdm6dSseHh4EBgbi7+/P8ePHOXbsGI8++ihRUVGEh4fz8MMP4+npae8o16WsjpfV\nLDlBWZXV2FnNkhOU1VGz/tL0CbGdWSwW9uzZw8KFC9m7dy8A7u7uODs7ExYWRlJSEt988w1btmwB\nrnwVEh8fj7OzM1FRUfTt29eeza8TZXW8rGbJCcqqrMbOapacoKyOmvWXpk+I7chqtVJWVsYbb7xB\nfn4+Hh4e+Pr64u/vT8uWLQFo0aIFFy5cID09nSVLlmC1Wrnvvvtwc3Ozc+vrRlkdL6tZcoKyKqux\ns5olJyiro2a9GVQQ32QHDx7k9ddfx2q10rhxY/z8/PDw8KB///58//33lJSUEB8fbzsG6KeffqJN\nmzZ07tyZzp07M2rUKMMMZGV1vKxmyQnKqqzGzmqWnKCsjpr1ZtMhEzfRrl27eOGFF0hISCAnJ4fJ\nkycD0KFDBzp06EB0dDQ5OTns27cPgLNnzzJ9+nR+/PFHfH19iYuLs2fz60RZHS+rWXKCsoKygnGz\nmiUnKCs4ZlZ70CfEN0F5eTkWi4WcnBzOnDnD448/TqdOnVi+fDklJSUkJiYCEBgYyN69ezlx4gSx\nsbH4+PjQp08fQx3srqyOl/Xy5cs4OTk5fE4wT5+C+tURs5olJyiro2a1J31C/AuzWq22ry5KS0vx\n9vbm6NGjAEyePJmFCxdSVlYGgJ+fH23btsXHxwdXV1cAnJ2d7dPwelBWx8zaqFEjwPFzmqlPQf0K\njpXVLDlBWR01q73pE+JfQF5eHh9//DG+vr64u7tTWlrKmjVraNGiBV999RUBAQEEBAQQFhbGnj17\nKCkpsR0AHxMTQ5s2bWjcuLGdU9ROSUkJr732GuHh4fj4+HD69GnS0tKU1cBZjx49yvTp02ncuDFe\nXl6Ul5ezdu1ah8sJ/9lXfXx8cHFxoby8nE8++cQhs5qpX82yr5rpvSYvL48PPvgAHx8f3N3dKSsr\nIzU1VVkNnvVWok+IG9jatWt59NFH+eGHH3jzzTdZvXo17u7uNGnShLi4ONq0acP27dvJyMgAwMXF\nhfbt29u51fV37Ngx0tLSeO+99wBo2rQpjRs3VlaDZt24cSPPPPMMHTp0oKysjEaNGuHq6oqLi4tD\n5QRYvXo1jzzyCAUFBSxdupQVK1bg6urqkPuqmfoVzLGvmum9piJrfn4+8+fPJzMzEzc3N4ccv2bK\neqvRJ8QN7KuvvuKee+4hJSUFT09PNm3aRHl5OQMGDAAgPj6ec+fOkZqaypIlS/D392fQoEGG/Vqj\noKCAkpISDh06RHBwMBEREcTHxwOOk/XSpUs4OTmZIus333xDYmIiYWFhfPTRR7av1ZOSkgDHyQmw\nbt06Ro8ezf3334+Pjw9r167F09PTdl5OR8q6e/duOnfubIp+BXPMS2Z6r1mzZg0jR45k1KhRbNq0\nCU9PT1q1akWLFi0AZTVq1luNtuAN2rVrFx9//DH9+/ene/fu5Obmcv78eXr27EmrVq0oKChg06ZN\n9OrVCzc3N4qKihg8eDCJiYlcunSJ8PBwe0eotcpZ27Vrh6+vL5s2baJLly707t2bmTNnkpyczO9+\n9ztcXFw4f/68IbNarVaKi4uZNWsWU6ZMsU00W7ZscaisV+ds1KgRe/fupbi4mOjoaIYOHUpmZiap\nqan89a9/xdPT02HGb1JSEkeOHMHNzY1u3boRGRmJk5MT6enpdOnSBVdXV4qLix0ia9euXcnLy+Po\n0aO0aNHCofvVkecls77XJCUlERISQnh4OKdOnSI9PZ3S0lKOHTvG2LFj8fT0pLCw0JBZq5uDPTw8\niI6OdrisRqBDJm7Ap59+ypw5c+jYsSNbt27lxRdf5L/+679YtmwZxcXFeHp6EhkZiaurK6dOneLo\n0aPMmTOH8+fP23Zwo6icdceOHUydOhW48utXX19f0tPTycvL48cff8TFxYXvv/+e2bNnGzKrxWIh\nLy+P9evXs2LFCtv9ZWVl+Pn5OUzWyjnff/99AIYNG8a6devw9fXl9ttvZ8yYMQQGBvLNN99w7Ngx\nhxi/FfvqlClTWLZsGatWreKvf/0rzZs3p0mTJhQWFnL06FFef/11h8k6duxY0tLSHLpfHXleMut7\nzdatW3nmmWcYOXIkYWFhADz//PNMmDCB3NxcNmzYwIkTJ/jb3/5myKzVzcHjx48nODgYi8XiUFmN\nQAVxPVitVgDOnz9PYmIi9957L5MmTWLHjh38+OOPDB06lGnTpgEQFhbG8ePH8fb2Jjw8nBdeeIEm\nTZrYs/l1Ul5eDlTN+tRTT3Ho0CF2797NmTNnmDhxIhEREcyePZtt27bx008/ERMTY7isFYqKilix\nYgUDBgzgo48+Ii8vD4CsrCwmT57sMFkr5/z44485evQoCQkJ9OvXj23btgFXjk87ffo0MTExNG/e\n3HA5qxu/kyZNYvv27Rw/fpz33nuP4uJikpKSGDduHGfPnsXT09Nh9tVJkyaxa9cujh8/zpgxY/jy\nyy8B4/drdXOwI85LZnqvqSnrvn37+OKLL4Arx4L369ePsLAw3NzcaNu2LcHBwYbLWuHqOfjYsWO2\nx/z8/BwqqxHoGOJ6sFgswJUCqaSkhPDwcDw9PfHz82POnDm8+uqrLF26lKysLBYsWEC7du1ISkrC\nYrHYlr3Vff/99/j6+taY1d/fnxkzZjBp0iQeeOABunbtSmhoKG5ubrRo0YLGjRsbLqvVasViseDi\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1594bbec5f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 显示逐日回测结果\n",
    "engine.showDailyResult()\n",
    "# 显示逐笔回测结果\n",
    "engine.showBacktestingResult()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2018-07-14 14:54:57.980685\t计算按日统计结果\n"
     ]
    }
   ],
   "source": [
    "df = engine.calculateDailyResult()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "df1, result = engine.calculateDailyStatistics(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'annualizedReturn': 1.7532299390804578,\n",
       " 'dailyCommission': 21.22091409908718,\n",
       " 'dailyNetPnl': 73.05124746168639,\n",
       " 'dailyReturn': 0.007387803536589458,\n",
       " 'dailySlippage': 0.46519337016574613,\n",
       " 'dailyTradeCount': 2.3259668508287294,\n",
       " 'dailyTurnover': 21220.91409908719,\n",
       " 'endBalance': 1013222.2757905652,\n",
       " 'endDate': datetime.date(2018, 6, 30),\n",
       " 'lossDays': 89,\n",
       " 'maxDdPercent': -0.2137939761525928,\n",
       " 'maxDrawdown': -2169.118938454194,\n",
       " 'profitDays': 92,\n",
       " 'returnStd': 0.03907241277566277,\n",
       " 'sharpeRatio': 2.929211484997973,\n",
       " 'startDate': datetime.date(2018, 1, 1),\n",
       " 'totalCommission': 3840.98545193478,\n",
       " 'totalDays': 181,\n",
       " 'totalNetPnl': 13222.275790565236,\n",
       " 'totalReturn': 1.322227579056512,\n",
       " 'totalSlippage': 84.20000000000005,\n",
       " 'totalTradeCount': 421,\n",
       " 'totalTurnover': 3840985.4519347814}"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "result"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
